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

MySQL में GROUP_CONCAT और DISTINCT के साथ डुप्लिकेट कॉलम मानों को स्पेशल कैरेक्टर से जोड़कर सिंगल रो में प्रदर्शित करना

GROUP_CONCAT() और DISTINCT के साथ डुप्लिकेट मानों को संयोजित करना

एक ही ID के लिए अलग-अलग विषयों को एक ही पंक्ति में हाइफ़न से अलग करके दिखाने के लिए GROUP_CONCAT() के साथ DISTINCT का उपयोग करें।

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (
    Id INT,
    Subject VARCHAR(40)
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable VALUES (100, 'MySQL');
mysql> INSERT INTO DemoTable VALUES (100, 'MongoDB');
mysql> INSERT INTO DemoTable VALUES (100, 'Java');
mysql> INSERT INTO DemoTable VALUES (100, 'MongoDB');
mysql> INSERT INTO DemoTable VALUES (101, 'MySQL');
mysql> INSERT INTO DemoTable VALUES (101, 'MySQL');

सभी रिकॉर्ड्स देखें:

mysql> SELECT * FROM DemoTable;

आउटपुट:

+------+---------+
| Id   | Subject |
+------+---------+
| 100  | MySQL   |
| 100  | MongoDB |
| 100  | Java    |
| 100  | MongoDB |
| 101  | MySQL   |
| 101  | MySQL   |
+------+---------+

प्रत्येक ID के लिए डिस्टिंक्ट विषयों को हाइफ़न से जोड़ने के लिए क्वेरी:

mysql> SELECT Id, GROUP_CONCAT(DISTINCT Subject SEPARATOR '-') AS Subject
    FROM DemoTable
    GROUP BY Id;

आउटपुट:

+------+--------------------+
| Id   | Subject            |
+------+--------------------+
| 100  | Java-MongoDB-MySQL |
| 101  | MySQL              |
+------+--------------------+

व्याख्या:

  • GROUP BY Id: रिकॉर्ड्स को ID के अनुसार समूहित करता है
  • DISTINCT Subject: प्रत्येक ग्रुप में डुप्लिकेट विषयों को हटाता है (ID 100 के लिए MongoDB दो बार था)
  • SEPARATOR '-': विषयों को हाइफ़न (-) से अलग करता है
  • GROUP_CONCAT(): ग्रुप के सभी मानों को एक स्ट्रिंग में जोड़ता है

नोट: GROUP_CONCAT का डिफॉल्ट मैक्सिमम लेंथ 1024 वर्ण होता है। बड़े डेटा के लिए SET SESSION group_concat_max_len = 10000; सेट कर सकते हैं।

  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 में सभी कॉलम मानों को कॉमा से अलग करके एक ही पंक्ति में प्रदर्शित करें?

    इसके लिए GROUP_CONCAT() और CONCAT() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1807 ( Id int ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1807 values(101); Query OK, 1 row affected

  1. - MySQL में GROUP_CONCAT और CONCAT_WS का उपयोग करके समान ID वाले रिकॉर्ड्स को विशेष वर्ण से अलग करके संयोजित करें

    MySQL में GROUP_CONCAT और CONCAT_WS के साथ पंक्तियों को समूहित करके संयोजित करना CONCAT_WS() (विभाजक के साथ संयोजित) और GROUP_CONCAT() को मिलाकर, आप एक कॉलम द्वारा पंक्तियों को समूहित कर सकते हैं और दूसरे कॉलम के मानों को कस्टम विभाजक के साथ एक ही स्ट्रिंग में जोड़ सकते हैं। टेबल बनाना ); Query OK