इसके लिए आप FIND_IN_SET() का इस्तेमाल कर सकते हैं। आइए पहले एक टेबल बनाएं -
mysql> टेबल बनाएं DemoTable(Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Value varchar(100));क्वेरी ओके, 0 पंक्तियाँ प्रभावित (2.49 सेकंड)
इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें -
mysql> डेमोटेबल (वैल्यू) मान ('100; 200; 300') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.42 सेकंड) mysql> डेमोटेबल (मान) मानों में डालें ('1; 300; 400');क्वेरी ओके, 1 पंक्ति प्रभावित (0.58 सेकंड)mysql> डेमोटेबल (वैल्यू) वैल्यू ('6; 7; 8; 9; 10') में डालें; क्वेरी ओके, 1 पंक्ति प्रभावित (0.29 सेकंड) mysql> डेमोटेबल में डालें ( मान) मान ('1; 2; 3; 4; 5'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (9.36 सेकंड) mysql> डेमोटेबल (मान) मानों में डालें ('3; 8; 9; 10'); क्वेरी ठीक है , 1 पंक्ति प्रभावित (0.46 सेकंड)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें -
mysql> डेमोटेबल से *चुनें;
यह निम्नलिखित आउटपुट देगा -
+-----+---------------+| आईडी | मूल्य | +-----+-------------+| 1 | 100; 200; 300 || 2 | 1;300;400 || 3 | 6;7;8;9;10 || 4 | 1;2;3;4;5 || 5 | 3;8;9;10 | +-----+------------+5 पंक्तियाँ सेट में (0.00 सेकंड)
अर्धविराम के साथ मूल्यों की सूची से एक विशिष्ट रिकॉर्ड खोजने के लिए क्वेरी निम्नलिखित है -
mysql> डेमोटेबल से * चुनें जहां find_in_set(8, replace(Value, ';', ','))> 0;
यह निम्नलिखित आउटपुट देगा -
<पूर्व>+----+---------------+| आईडी | मूल्य |+----+------------+| 3 | 6;7;8;9;10 || 5 | 3;8;9;10 |+-----+---------------+2 पंक्तियों में सेट (0.00 सेकंड)