किसी कॉलम में विशिष्ट पैटर्न (जैसे 'John-%') से शुरू होने वाले मानों की प्रति-मान गणना करने के लिए LIKE फ़िल्टर के साथ COUNT() और GROUP BY का उपयोग करें।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1854 (Name VARCHAR(20));
डेटा डालें
mysql> INSERT INTO DemoTable1854 VALUES('John-Smith');
mysql> INSERT INTO DemoTable1854 VALUES('Chris-Brown');
mysql> INSERT INTO DemoTable1854 VALUES('Adam-Smith');
mysql> INSERT INTO DemoTable1854 VALUES('John-Doe');
mysql> INSERT INTO DemoTable1854 VALUES('John-Smith'); -- डुप्लिकेट
'John-' से शुरू होने वाले नामों की गणना
mysql> SELECT Name, COUNT(Name) AS Count
FROM DemoTable1854
WHERE Name LIKE 'John-%'
GROUP BY Name;
आउटपुट:
+------------+-------+ | Name | Count | +------------+-------+ | John-Smith | 2 | | John-Doe | 1 | +------------+-------+
व्याख्या
WHERE Name LIKE 'John-%'→ केवल 'John-' से शुरू होने वाली पंक्तियाँ फ़िल्टर करता है।GROUP BY Name→ प्रत्येक अद्वितीय नाम के लिए समूह बनाता है।COUNT(Name)→ प्रत्येक समूह में पंक्तियाँ गिनता है (NULL नहीं गिनता)।
विविधताएं
COUNT(*)- सभी पंक्तियाँ गिनता है (NULL सहित)।COUNT(DISTINCT Name)- अद्वितीय नामों की कुल संख्या (एक संख्या)।- केस-इनसेंसिटिव:
WHERE Name LIKE 'john-%' COLLATE utf8mb4_general_ci
प्रदर्शन टिप
LIKE 'prefix%' (वाइल्डकार्ड अंत में) इंडेक्स उपयोग कर सकता है। LIKE '%suffix' या LIKE '%middle%' इंडेक्स उपयोग नहीं कर सकता।