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

MySQL में GROUP_CONCAT DISTINCT का उपयोग करके ID के अनुसार विशिष्ट नाम जोड़ना

MySQL में सबक्वेरी में DISTINCT और GROUP_CONCAT के साथ ID द्वारा विशिष्ट नाम संयोजित करना

GROUP_CONCAT() के साथ DISTINCT का उपयोग करने के लिए, पहले सबक्वेरी में DISTINCT लागू करें, फिर बाहरी क्वेरी में GROUP_CONCAT() करें।

व्यावहारिक उदाहरण

तालिका बनाना

mysql> CREATE TABLE DemoTable (
    Id INT,
    Name VARCHAR(100)
);

डुप्लिकेट रिकॉर्ड डालना

mysql> INSERT INTO DemoTable VALUES(100, 'Chris');
mysql> INSERT INTO DemoTable VALUES(200, 'Robert');
mysql> INSERT INTO DemoTable VALUES(100, 'Chris');
mysql> INSERT INTO DemoTable VALUES(300, 'David');
mysql> INSERT INTO DemoTable VALUES(400, 'Mike');
mysql> INSERT INTO DemoTable VALUES(400, 'Mike');

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+------+--------+
| Id   | Name   |
+------+--------+
| 100  | Chris  |
| 200  | Robert |
| 100  | Chris  |
| 300  | David  |
| 400  | Mike   |
| 400  | Mike   |
+------+--------+

ID द्वारा विशिष्ट नाम संयोजित करने के लिए क्वेरी

mysql> SELECT GROUP_CONCAT(Name) FROM (
    SELECT DISTINCT Id, Name FROM DemoTable
) tbl;

आउटपुट:

+-------------------------+
| GROUP_CONCAT(Name)      |
+-------------------------+
| Chris,Robert,David,Mike |
+-------------------------+

व्याख्या

  1. सबक्वेरी: SELECT DISTINCT Id, Name FROM DemoTable - (Id, Name) जोड़े के डुप्लिकेट हटाता है
  2. बाहरी क्वेरी: GROUP_CONCAT(Name) - सभी विशिष्ट नामों को अल्पविराम से जोड़ता है

प्रति ID GROUP_CONCAT DISTINCT (MySQL 8.0+)

-- कस्टम सेपरेटर
GROUP_CONCAT(DISTINCT Name SEPARATOR '; ')

-- क्रमबद्ध
GROUP_CONCAT(DISTINCT Name ORDER BY Name)

-- अधिकतम लंबाई बढ़ाना
SET SESSION group_concat_max_len = 1000000;
  1. - MySQL क्वेरी में LIKE CONCAT() का उपयोग कैसे करें?

    MySQL LIKE CONCAT(): डायनामिक पैटर्न बनाना CONCAT() फंक्शन का उपयोग करके आप रनटाइम पर LIKE पैटर्न बना सकते हैं। यह तब उपयोगी है जब खोज पैटर्न किसी कॉलम, वेरिएबल, या पैरामीटर से आता है। उदाहरण: o अक्षर वाले नाम खोजें टेबल बनाएं: CREATE TABLE DemoTable (Name VARCHAR(50)); INSERT INTO DemoTable VALUES

  1. - MySQL में COUNT() और DISTINCT के साथ सिंगल क्वेरी में अलग-अलग आइटम्स काउंट करना

    COUNT(DISTINCT ...) के साथ यूनिक आइटम्स गिनना किसी विशिष्ट ग्रुप (जैसे ग्राहक) के लिए अलग-अलग प्रोडक्ट्स की संख्या गिनने के लिए COUNT() के साथ DISTINCT का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( CustomerId INT, CustomerName VARCHAR(20), ProductName VARC

  1. - MySQL GROUP_CONCAT में अंतिम मान कैसे प्राप्त करें?

    SUBSTRING_INDEX() का उपयोग करके GROUP_CONCAT का अंतिम मान प्राप्त करना GROUP_CONCAT में अंतिम मान प्राप्त करने के लिए SUBSTRING_INDEX() का उपयोग करें। पहले एक टेबल बनाते हैं: CREATE TABLE DemoTable1525 ( ListOfSubjects TEXT ); Query OK, 0 rows affected (1.13 sec) रिकॉर्ड्स डालना INSERT INTO