सबसे पहले आपको एक टेबल चेकरेंज चाहिए
CREATE TABLE checkRanges
([checkID] int, [name] varchar(8), [low] int, [upper] int);
INSERT INTO checkRanges
([checkID], [name], [low], [upper])
VALUES
(1, '0-3', 0, 2),
(2, '3-6', 3, 5),
(4, '6-9', 6, 8),
(8, '9-12', 9, 11),
(16, '12+', 12, 999)
देखें कैसे checkID
2 की शक्ति हैं?
आपके ऐप में यदि उपयोगकर्ता 3-6
. का चयन करता है और 9-12
आप भेजें 2+8 = 10
आपके डीबी के लिए। यह भी अच्छा होगा यदि आप डीबी जानकारी का उपयोग करके अपना चेक बॉक्स बनाते हैं।
अपने डीबी में आप सही श्रेणियों का चयन करने के लिए बिटवाइज तुलना करते हैं। फिर प्रत्येक श्रेणी के साथ बीच में प्रदर्शन करें।
WITH ranges as (
SELECT *
FROM checkRanges
where checkID & 10 > 0
)
SELECT *
FROM users u
inner join ranges r
on u.Experience between r.low and r.upper
यह सब एक साथ देखें SQL Fiddle डेमो
मैं अधिक उपयोगकर्ताओं को शामिल करता हूं। आपको केवल क्लॉज़्यूल बदलना होगा where checkID & 10 > 0
अन्य संयोजन का परीक्षण करने के लिए।
नोट:
मैं श्रेणियों को अपडेट करता/करती हूं। ऊपरी मान को value - 1
. में बदलें क्योंकि between
समावेशी है और डुप्लिकेट परिणाम दे सकता है।
यदि आप पुराने संस्करण का उपयोग करना चाहते हैं तो आपको betwewen
. को बदलना होगा
u.Experience >= r.low and u.Experience *<* r.upper