GROUP_CONCAT() का उपयोग करके सभी मानों को एक स्ट्रिंग में संयोजित करना
इसके लिए GROUP_CONCAT() का उपयोग करें। GROUP BY क्लॉज का उपयोग न करें, क्योंकि GROUP_CONCAT() बेहतर और त्वरित समाधान है।
पहले टेबल बनाएं:
mysql> create table DemoTable1371 ( Id int, CountryName varchar(40) ); Query OK, 0 rows affected (0.89 sec)
रिकॉर्ड डालें:
mysql> insert into DemoTable1371 values(100,'US'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable1371 values(100,'UK'); Query OK, 1 row affected (0.21 sec) mysql> insert into DemoTable1371 values(101,'AUS'); Query OK, 1 row affected (0.27 sec) mysql> insert into DemoTable1371 values(101,'Angola'); Query OK, 1 row affected (0.14 sec)
सभी रिकॉर्ड देखें:
mysql> select * from DemoTable1371;
आउटपुट:
+------+-------------+ | Id | CountryName | +------+-------------+ | 100 | US | | 100 | UK | | 101 | AUS | | 101 | Angola | +------+-------------+ 4 rows in set (0.00 sec)
सभी पंक्तियों से मान प्राप्त करके अल्पविराम से अलग एक पंक्ति में प्रदर्शित करने की क्वेरी:
mysql> select group_concat(CountryName separator ',') from DemoTable1371;
परिणाम:
+-----------------------------------------+ | group_concat(CountryName separator ',') | +-----------------------------------------+ | US,UK,AUS,Angola | +-----------------------------------------+ 1 row in set (0.00 sec)
व्याख्या: GROUP_CONCAT() सभी पंक्तियों के मानों को एक स्ट्रिंग में जोड़ता है। SEPARATOR ',' अल्पविराम को विभाजक के रूप में सेट करता है (डिफ़ॉल्ट भी अल्पविराम है)। GROUP BY के बिना यह पूरी टेबल को एक ग्रुप मानता है। डिफ़ॉल्ट अधिकतम लंबाई 1024 बाइट्स है, जिसे group_concat_max_len सिस्टम वेरिएबल से बदला जा सकता है।