Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में GROUP_CONCAT() और CONCAT() का उपयोग करके एकाधिक पंक्तियों और कॉलम को एक पंक्ति में संयोजित करना

MySQL में GROUP_CONCAT() के साथ पंक्तियों को एक स्ट्रिंग में संयोजित करना

एकाधिक पंक्तियों और कॉलम को एक स्ट्रिंग में संयोजित करने के लिए, GROUP_CONCAT() (पंक्तियों को जोड़ता है) के साथ CONCAT() (कॉलम को जोड़ता है) का उपयोग करें।

उदाहरण: ग्राहक डेटा को एक स्ट्रिंग में संयोजित करना

mysql> CREATE TABLE DemoTable1463 (
    -> ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> ClientName VARCHAR(20),
    -> ClientAge INT
    -> );
Query OK, 0 rows affected (1.37 sec)

mysql> INSERT INTO DemoTable1463 (ClientName, ClientAge) VALUES
    -> ('Adam Smith', 34), ('John Doe', 29), ('David Miller', NULL), ('John Smith', 32);
Query OK, 4 rows affected (0.13 sec)

mysql> SELECT * FROM DemoTable1463;
+----------+--------------+-----------+
| ClientId | ClientName   | ClientAge |
+----------+--------------+-----------+
|        1 | Adam Smith   |        34 |
|        2 | John Doe     |        29 |
|        3 | David Miller |      NULL |
|        4 | John Smith   |        32 |
+----------+--------------+-----------+
4 rows in set (0.00 sec)

GROUP_CONCAT के साथ CONCAT क्वेरी

mysql> SELECT GROUP_CONCAT(CONCAT(ClientId, ':', ClientName, ':', IFNULL(ClientAge, '')))
    -> FROM DemoTable1463;

परिणाम

+------------------------------------------------------------------------+
| GROUP_CONCAT(CONCAT(ClientId,':',ClientName,':',IFNULL(ClientAge,''))) |
+------------------------------------------------------------------------+
| 1:Adam Smith:34,2:John Doe:29,3:David Miller:,4:John Smith:32          |
+------------------------------------------------------------------------+
1 row in set (0.04 sec)

घटक विश्लेषण

फ़ंक्शनभूमिकाउदाहरण आउटपुट
CONCAT(ClientId, ':', ClientName, ':', IFNULL(ClientAge, ''))प्रति पंक्ति कॉलम जोड़ता है'1:Adam Smith:34'
IFNULL(ClientAge, '')NULL को खाली स्ट्रिंग से बदलता हैNULL → ''
GROUP_CONCAT(...)सभी पंक्ति स्ट्रिंग्स को जोड़ता है'1:...,2:...,3:...,4:...'

GROUP_CONCAT विकल्प

-- कस्टम विभाजक
GROUP_CONCAT(...) SEPARATOR '|'

-- क्रमबद्ध संयोजन
GROUP_CONCAT(...) ORDER BY ClientName

-- अधिकतम लंबाई सीमा (डिफ़ॉल्ट 1024 बाइट्स)
SET SESSION group_concat_max_len = 10000;
GROUP_CONCAT(...) 

-- अद्वितीय मान
GROUP_CONCAT(DISTINCT ...)

उपयोग के मामले

  • CSV/TSV निर्यात उत्पन्न करना
  • रिपोर्ट के लिए सारांश स्ट्रिंग्स बनाना
  • एप्लिकेशन लेयर के लिए JSON-जैसी संरचनाएं बनाना
  • डेटा निर्यात/माइग्रेशन स्क्रिप्ट
  1. - MySQL में SUM() के साथ सशर्त गणना करके एक पंक्ति में एकाधिक कॉलम में परिणाम प्रदर्शित करना

    MySQL में पिवट-शैली सशर्त गणना एक ही क्वेरी में विभिन्न श्रेणियों के लिए एकाधिक गणना प्राप्त करने और उन्हें एक पंक्ति में अलग-अलग कॉलम के रूप में प्रदर्शित करने के लिए, SUM() के साथ बूलियन अभिव्यक्तियों का उपयोग करें। उदाहरण: पसंदीदा रंग गिनती SELECT * FROM DemoTable1452; +----------------+ | Favo

  1. - MySQL में कॉलम मानों को अलग टेक्स्ट के साथ जोड़ें और एकल कॉलम में प्रदर्शित करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.93 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(101,Chris); Query OK, 1 row affected (0.25 sec) mysq

  1. - MySQL में DISTINCT से डुप्लिकेट पंक्तियों में से एक पंक्ति दिखाएं

    DISTINCT कीवर्ड से अद्वितीय पंक्तियां प्राप्त करें पूरी पंक्ति के डुप्लिकेट को हटाकर केवल अद्वितीय पंक्तियां प्राप्त करने के लिए SELECT DISTINCT * का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1998 ( Name varchar(20) ); Query OK, 0 rows affected (0.61 sec) mysql> insert