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

MySQL में GROUP_CONCAT के साथ खाली फील्ड के लिए सेपरेटर जोड़ना

MySQL में REPLACE() और GROUP_CONCAT() के साथ खाली मानों के लिए सेपरेटर बनाए रखना

GROUP_CONCAT() डिफ़ॉल्ट रूप से NULL मानों को छोड़ देता है, जिससे लगातार सेपरेटर बन जाते हैं। REPLACE() का उपयोग करके इसे ठीक किया जा सकता है।

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

तालिका बनाना

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

रिकॉर्ड डालना (खाली स्ट्रिंग सहित)

mysql> INSERT INTO DemoTable VALUES(10, '456');
mysql> INSERT INTO DemoTable VALUES(11, '345');
mysql> INSERT INTO DemoTable VALUES(10, '');
mysql> INSERT INTO DemoTable VALUES(10, '278');
mysql> INSERT INTO DemoTable VALUES(10, '');
mysql> INSERT INTO DemoTable VALUES(10, '789');

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+------+--------+
| Id   | Number |
+------+--------+
| 10   | 456    |
| 11   | 345    |
| 10   |        |
| 10   | 278    |
| 10   |        |
| 10   | 789    |
+------+--------+

खाली फील्ड के लिए सेपरेटर बनाए रखने के लिए क्वेरी

mysql> SELECT Id, REPLACE(GROUP_CONCAT(Number), ',,', ',') 
FROM DemoTable GROUP BY Id;

आउटपुट:

+------+----------------------------------------+
| Id   | REPLACE(GROUP_CONCAT(Number), ',,', ',') |
+------+----------------------------------------+
| 10   | 456,278,789                            |
| 11   | 345                                    |
+------+----------------------------------------+

समस्या और समाधान

समस्या: खाली स्ट्रिंग '' को GROUP_CONCAT शामिल करता है, जिससे 456,,278,,789 जैसा परिणाम मिलता है (दोहरे अल्पविराम)।

समाधान: REPLACE(..., ',,', ',') दोहरे अल्पविराम को एकल में बदलता है।

बेहतर दृष्टिकोण: NULL का उपयोग करें

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

-- क्रमबद्ध करना
GROUP_CONCAT(Number ORDER BY Number)

-- अधिकतम लंबाई (डिफ़ॉल्ट 1024)
GROUP_CONCAT(Number SEPARATOR ',' ORDER BY Number)
  1. JavaScript से खाली इनपुट फील्ड्स के लिए फॉर्म वैलिडेशन कैसे जोड़ें? JavaScript से खाली इनपुट फील्ड्स के लिए फॉर्म वैलिडेशन कैसे जोड़ें?

    JavaScript का उपयोग करके खाली इनपुट फील्ड्स के लिए फॉर्म वैलिडेशन जोड़ने का कोड नीचे दिया गया है। उदाहरण <!DOCTYPE html> <html> <head></head> <h1>JavaScript खाली इनपुट फील्ड वैलिडेशन उदाहरण</h1> <form name=Form1 onsubmit=return emptyValidation() required&g

  1. - MySQL में COALESCE() से खाली पंक्ति के लिए डिफ़ॉल्ट मान सेट करें

    COALESCE() फ़ंक्शन का उपयोग करके NULL मानों को क्वेरी परिणाम में डिफ़ॉल्ट मान से बदल सकते हैं। यह टेबल डेटा नहीं बदलता, केवल आउटपुट प्रभावित करता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1863 (FirstName VARCHAR(20)); डेटा डालें mysql> INSERT INTO DemoTable1863 VALUES(Chris); mysql> INS

  1. - MySQL में DATE_ADD और INTERVAL से DATETIME कॉलम में दिन जोड़ें

    DATE_ADD() फ़ंक्शन के साथ INTERVAL n DAY का उपयोग करके DATETIME कॉलम में दिन जोड़ें (या घटाएं)। टेबल बनाएं mysql> CREATE TABLE DemoTable1871 (ArrivalDate DATETIME); डेटा डालें mysql> INSERT INTO DemoTable1871 VALUES(2019-12-19 07:45:00), (2018-11-10 12:00:00), (2019-01-31); 6 दिन जोड़ें (UP