CONCAT() स्ट्रिंग्स को जोड़ता है, जबकि GROUP_CONCAT() एक समूह से स्ट्रिंग्स को एकल स्ट्रिंग में जोड़ता है।
आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable799 ( UserId int, UserName varchar(100), UserAge int ); Query OK, 0 rows affected (0.56 sec)
इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable799 values(101,'John',21); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable799 values(102,'Chris',26); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable799 values(101,'Robert',23); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable799 values(103,'David',24); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable799 values(101,'Mike',29); Query OK, 1 row affected (0.18 sec)
सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> select * from DemoTable799;
यह निम्नलिखिक आउटपुट देगा:
+--------+----------+---------+ | UserId | UserName | UserAge | +--------+----------+---------+ | 101 | John | 21 | | 102 | Chris | 26 | | 101 | Robert | 23 | | 103 | David | 24 | | 101 | Mike | 29 | +--------+----------+---------+ 5 rows in set (0.00 sec)
CONCAT() और GROUP_CONCAT() के साथ स्ट्रिंग्स संयोजित करने की क्वेरी
mysql> select UserId, GROUP_CONCAT(CONCAT('MR.', UserName)) from DemoTable799 group by UserId;
यह निम्नलिखिक आउटपुट देगा:
+--------+---------------------------------------+
| UserId | GROUP_CONCAT(CONCAT('MR.', UserName)) |
+--------+---------------------------------------+
| 101 | MR.John,MR.Robert,MR.Mike |
| 102 | MR.Chris |
| 103 | MR.David |
+--------+---------------------------------------+
3 rows in set (0.00 sec)
व्याख्या
CONCAT('MR.', UserName)प्रत्येक नाम के आगे 'MR.' जोड़ता है (पंक्ति-स्तर पर)GROUP_CONCAT(...)प्रत्येक UserId समूह के लिए उन संयोजित नामों को जोड़ता है (समूह-स्तर पर)GROUP BY UserIdUserId के अनुसार समूहित करता है- UserId 101 की 3 पंक्तियाँ हैं: John, Robert, Mike → MR.John,MR.Robert,MR.Mike
उपयोगी विकल्प
GROUP_CONCAT(CONCAT('MR.', UserName) ORDER BY UserName SEPARATOR '; ')
नाम के अनुसार सॉर्ट करें और सेमीकोलन विभाजक का उपयोग करें।