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

MySQL में GROUP_CONCAT के साथ एक कॉलम द्वारा ग्रुप करें और दूसरे कॉलम के रिकॉर्ड को सेपरेटर के साथ प्रदर्शित करें

MySQL में GROUP_CONCAT() फ़ंक्शन का उपयोग एकाधिक पंक्तियों के डेटा को एक फ़ील्ड में जोड़ने के लिए किया जाता है, जिसे GROUP BY के साथ जोड़ा जाता है।

टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    PlayerId INT,
    ListOfPlayerName VARCHAR(30)
);
Query OK, 0 rows affected (0.52 sec)
mysql> INSERT INTO DemoTable VALUES(100,'Chris');
mysql> INSERT INTO DemoTable VALUES(101,'David');
mysql> INSERT INTO DemoTable VALUES(100,'Bob');
mysql> INSERT INTO DemoTable VALUES(100,'Sam');
mysql> INSERT INTO DemoTable VALUES(102,'Carol');
mysql> INSERT INTO DemoTable VALUES(101,'Tom');
mysql> INSERT INTO DemoTable VALUES(102,'John');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+----------+------------------+
| PlayerId | ListOfPlayerName |
+----------+------------------+
| 100      | Chris            |
| 101      | David            |
| 100      | Bob              |
| 100      | Sam              |
| 102      | Carol            |
| 101      | Tom              |
| 102      | John             |
+----------+------------------+
7 rows in set (0.00 sec)

सेपरेटर के साथ ग्रुप कॉनकैट क्वेरी

mysql> SELECT PlayerId,
    GROUP_CONCAT(ListOfPlayerName SEPARATOR '/') AS AllPlayerNameWithSameId
FROM DemoTable
GROUP BY PlayerId;

परिणाम:

+----------+-------------------------+
| PlayerId | AllPlayerNameWithSameId |
+----------+-------------------------+
| 100      | Chris/Bob/Sam           |
| 101      | David/Tom               |
| 102      | Carol/John              |
+----------+-------------------------+
3 rows in set (0.00 sec)

व्याख्या: SEPARATOR '/' क्लॉज कस्टम डिलीमीटर निर्दिष्ट करता है। डिफ़ॉल्ट रूप से, अल्पविराम (,) का उपयोग किया जाता है।

  1. - MySQL में FIND_IN_SET से कॉमा-सेपरेटेड कॉलम में मान की स्थिति खोजें

    FIND_IN_SET(str, strlist) फ़ंक्शन कॉमा-सेपरेटेड स्ट्रिंग सूची में किसी स्ट्रिंग की स्थिति (1-आधारित) लौटाता है। यह IN से अलग है; यह सटीक पूर्ण-तत्व मिलान करता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1866 ( Value1 INT, ListOfValues VARCHAR(100) ); डेटा डालें mysql> INSERT INTO Dem

  1. - MySQL में MIN() और GROUP BY से डुप्लिकेट कॉलम वाले समूह की पहली टाइमस्टैम्प तिथि प्राप्त करें

    किसी कॉलम (जैसे Value) के डुप्लिकेट मान वाले समूहों में से सबसे पहली (न्यूनतम) टाइमस्टैम्प प्राप्त करने के लिए MIN() एग्रीगेट फ़ंक्शन के साथ GROUP BY का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1870 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Value INT, ShippingTimestamp

  1. - MySQL में अलग कॉलम वाली टेबल में रिकॉर्ड कैसे कॉपी करें?

    MySQL में एक टेबल से दूसरी टेबल में डेटा कॉपी करने के लिए, जब कॉलम नाम या संरचना अलग हो, तो INSERT INTO ... SELECT स्टेटमेंट का उपयोग करें। यह कॉलम मैपिंग को स्पष्ट रूप से परिभाषित करने की अनुमति देता है। उदाहरण: अलग कॉलम नामों के साथ डेटा कॉपी स्रोत टेबल बनाएं (ऑटो-इन्क्रीमेंट प्राइमरी की के साथ)