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

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

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)

व्याख्या:

  1. आंतरिक क्वेरी GROUP BY Subject विशिष्ट विषय लौटाती है
  2. बाहरी GROUP_CONCAT() उन्हें कॉमा-सेपरेटेड स्ट्रिंग में जोड़ता है

उपयोगी विकल्प:

  • GROUP_CONCAT(DISTINCT Subject ORDER BY Subject SEPARATOR '; ') - सीधे DISTINCT, क्रम और कस्टम विभाजक
  • SET SESSION group_concat_max_len = 10000; - डिफ़ॉल्ट 1024 बाइट्स की सीमा बढ़ाएं
  1. - MySQL में क्वेरी परिणामों को रैंडम क्रम में ऑर्डर करना और रैंडम पंक्तियां चुनना

    परिचय MySQL में ORDER BY RAND() का उपयोग करके क्वेरी परिणामों को यादृच्छिक (रैंडम) क्रम में क्रमबद्ध किया जा सकता है। LIMIT के साथ संयोजित करके रैंडम नमूना (random sample) प्राप्त किया जा सकता है। सिंटैक्स SELECT * FROM table_name WHERE column_name IN (value1, value2, ...) ORDER BY RAND() LIMIT lim

  1. - MySQL में यूज़र-डिफ़ाइन्ड वेरिएबल (@var) से क्वेरी परिणाम असाइन करें

    MySQL में @variable_name सिंटैक्स से यूज़र-डिफ़ाइन्ड वेरिएबल बनाकर SELECT ... INTO @var या असाइनमेंट ऑपरेटर := से क्वेरी परिणाम संग्रहीत कर सकते हैं। टेबल बनाएं mysql> CREATE TABLE DemoTable1864 ( Id INT, FirstName VARCHAR(20), LastName VARCHAR(20) ); डेटा डालें mysql> INSERT INT

  1. - MySQL में परिणाम समूहित करें और सूची में दिखाएं

    समाधान GROUP BY के साथ ORDER BY का उपयोग करके गणना और क्रमबद्ध करें। सिंटैक्स SELECT yourColumnName, COUNT(*) AS aliasName FROM yourTableName GROUP BY yourColumnName ORDER BY yourColumnName; उदाहरण टेबल बनाएं: INSERT INTO demo7 (first_name) VALUES (John), (David), (John), (Bob), (David), (David),