MySQL का GROUP_CONCAT() फ़ंक्शन एक ग्रुप के भीतर मानों को जोड़कर एक स्ट्रिंग सूची बनाता है। यह रिपोर्टिंग और डेटा निर्यात के लिए बहुत उपयोगी है।
सिंटैक्स
SELECT कॉलम_नाम,
GROUP_CONCAT(अन्य_कॉलम [SEPARATOR 'अलग_करने_वाला_चिन्ह'])
FROM टेबल_नाम
GROUP BY कॉलम_नाम;
उदाहरण: क्लाइंट नामों को कॉमा-सूची में बदलना
1. टेबल बनाएं
mysql> CREATE TABLE DemoTable (
-> ClientId INT,
-> ClientName VARCHAR(20)
-> );
2. डेटा डालें
mysql> INSERT INTO DemoTable VALUES(100, 'Chris'); mysql> INSERT INTO DemoTable VALUES(100, 'Robert'); mysql> INSERT INTO DemoTable VALUES(100, 'Adam'); mysql> INSERT INTO DemoTable VALUES(100, 'David');
3. सभी रिकॉर्ड देखें
mysql> SELECT * FROM DemoTable;
+----------+------------+ | ClientId | ClientName | +----------+------------+ | 100 | Chris | | 100 | Robert | | 100 | Adam | | 100 | David | +----------+------------+
4. GROUP_CONCAT क्वेरी
mysql> SELECT ClientId,
-> GROUP_CONCAT(ClientName SEPARATOR ',')
-> FROM DemoTable
-> GROUP BY ClientId;
5. परिणाम
+----------+----------------------------------------+ | ClientId | group_concat(ClientName separator ',') | +----------+----------------------------------------+ | 100 | Chris,Robert,Adam,David | +----------+----------------------------------------+
उपयोगी विकल्प
- SEPARATOR: डिफ़ॉल्ट कॉमा (,) है, बदल सकते हैं
- ORDER BY:
GROUP_CONCAT(नाम ORDER BY नाम)से क्रम नियंत्रित करें - DISTINCT:
GROUP_CONCAT(DISTINCT नाम)से डुप्लिकेट हटाएं - LIMIT: MySQL 8.0+ में समर्थित
सीमाएं
डिफ़ॉल्ट अधिकतम लंबाई 1024 बाइट्स है। group_concat_max_len सिस्टम वेरिएबल से बढ़ाएं।