GROUP_CONCAT() और ORDER BY का उपयोग करके पंक्तियों को सरणी में ग्रुप करना
पंक्तियों को सरणी में ग्रुप करने के लिए GROUP_CONCAT() के साथ ORDER BY क्लॉज का उपयोग करें। पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
Id INT,
FirstName VARCHAR(20)
);
Query OK, 0 rows affected (0.78 sec)
रिकॉर्ड्स डालना
mysql> INSERT INTO DemoTable VALUES(101, 'John'); Query OK, 1 row affected (0.13 sec) mysql> INSERT INTO DemoTable VALUES(102, 'Bob'); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO DemoTable VALUES(101, 'David'); Query OK, 1 row affected (0.12 sec) mysql> INSERT INTO DemoTable VALUES(101, 'Adam'); Query OK, 1 row affected (0.10 sec) mysql> INSERT INTO DemoTable VALUES(102, 'Chris'); Query OK, 1 row affected (0.15 sec)
सभी रिकॉर्ड्स देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+------+-----------+ | Id | FirstName | +------+-----------+ | 101 | John | | 102 | Bob | | 101 | David | | 101 | Adam | | 102 | Chris | +------+-----------+ 5 rows in set (0.00 sec)
कॉलम मान के अनुसार पंक्तियों को सरणी में ग्रुप करने की क्वेरी
mysql> SELECT Id, GROUP_CONCAT(FirstName SEPARATOR ',') FROM DemoTable GROUP BY Id ORDER BY COUNT(Id);
आउटपुट:
+------+---------------------------------------+ | Id | GROUP_CONCAT(FirstName SEPARATOR ',') | +------+---------------------------------------+ | 102 | Bob,Chris | | 101 | John,David,Adam | +------+---------------------------------------+ 2 rows in set (0.00 sec)
व्याख्या:
GROUP BY Id- Id के अनुसार पंक्तियों को ग्रुप करता है।GROUP_CONCAT(FirstName SEPARATOR ',')- प्रत्येक ग्रुप के FirstName मानों को कॉमा से जोड़ता है।ORDER BY COUNT(Id)- ग्रुप्स को पंक्तियों की संख्या के अनुसार सॉर्ट करता है (कम से अधिक)।