FIND_IN_SET() के साथ कॉमा-सेपरेटेड मानों की गिनती
कॉमा-सेपरेटेड मानों को काउंट करने के लिए, FIND_IN_SET() फंक्शन के साथ COUNT(*) एग्रीगेट फंक्शन का उपयोग करें। आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
Value VARCHAR(100)
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable VALUES ('10,20,60,80');
mysql> INSERT INTO DemoTable VALUES ('60,70,90');
mysql> INSERT INTO DemoTable VALUES ('50,55,65,60');
mysql> INSERT INTO DemoTable VALUES ('90,98,97');
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-------------+ | Value | +-------------+ | 10,20,60,80 | | 60,70,90 | | 50,55,65,60 | | 90,98,97 | +-------------+
डेटाबेस से प्राप्त कॉमा-सेपरेटेड मानों में किसी विशिष्ट मान (जैसे 60) की गिनती करने के लिए क्वेरी:
mysql> SELECT COUNT(*) FROM DemoTable
WHERE FIND_IN_SET('60', Value) > 0;
आउटपुट:
+----------+ | COUNT(*) | +----------+ | 3 | +----------+
व्याख्या: FIND_IN_SET('60', Value) फंक्शन जांचता है कि '60' कॉमा-सेपरेटेड स्ट्रिंग में मौजूद है या नहीं। यदि मौजूद है तो यह उसकी पोजीशन (1 से शुरू) लौटाता है, अन्यथा 0 लौटाता है। WHERE क्लॉज केवल उन पंक्तियों को चुनता है जहां यह मान 0 से अधिक हो, और COUNT(*) उन पंक्तियों की कुल संख्या गिनता है।
नोट: यह तरीका तभी काम करता है जब मान कॉमा से अलग किए गए हों और उनमें कोई अतिरिक्त स्पेस न हो।