MySQL में GROUP_CONCAT() फ़ंक्शन का उपयोग करके विशिष्ट (DISTINCT) मानों को एक ही स्ट्रिंग में जोड़ें।
उदाहरण: टेबल बनाना और डुप्लिकेट डेटा डालना
mysql> CREATE TABLE DemoTable (
-> Subject VARCHAR(10)
-> );
Query OK, 0 rows affected (0.43 sec)
mysql> INSERT INTO DemoTable VALUES
-> ('C'), ('C++'), ('C++'), ('MongoDB'), ('MySQL'),
-> ('MongoDB'), ('MongoDB'), ('Java'), ('Java');
सभी रिकॉर्ड देखना (डुप्लिकेट सहित)
mysql> SELECT * FROM DemoTable;
आउटपुट
+---------+ | Subject | +---------+ | C | | C++ | | C++ | | MongoDB | | MySQL | | MongoDB | | MongoDB | | Java | | Java | +---------+ 9 rows in set (0.00 sec)
विशिष्ट मानों को जोड़ने की क्वेरी
mysql> SELECT GROUP_CONCAT(tbl.sub)
-> FROM (SELECT Subject AS sub FROM DemoTable GROUP BY Subject) AS tbl;
आउटपुट
+--------------------------+ | GROUP_CONCAT(tbl.sub) | +--------------------------+ | C,C++,MongoDB,MySQL,Java | +--------------------------+ 1 row in set (0.04 sec)
व्याख्या:
- आंतरिक क्वेरी
GROUP BY Subjectविशिष्ट विषय लौटाती है - बाहरी
GROUP_CONCAT()उन्हें कॉमा-सेपरेटेड स्ट्रिंग में जोड़ता है
उपयोगी विकल्प:
GROUP_CONCAT(DISTINCT Subject ORDER BY Subject SEPARATOR '; ')- सीधे DISTINCT, क्रम और कस्टम विभाजकSET SESSION group_concat_max_len = 10000;- डिफ़ॉल्ट 1024 बाइट्स की सीमा बढ़ाएं