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

MySQL में बूलियन कॉलम के आधार पर रो कॉनकैटिनेट करना

GROUP_CONCAT() से बूलियन ग्रुपिंग के साथ कॉनकैटिनेशन

किसी बूलियन कॉलम के मान (TRUE/FALSE) के आधार पर दूसरे कॉलम के मानों को कॉमा-सेपरेटेड स्ट्रिंग में जोड़ने के लिए GROUP_CONCAT() फंक्शन का उपयोग करें।

टेबल बनाना और डेटा इन्सर्ट करना

CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserMessage VARCHAR(100),
    isValidUser BOOLEAN
);

INSERT INTO DemoTable(UserMessage, isValidUser) VALUES('Hi', TRUE);
INSERT INTO DemoTable(UserMessage, isValidUser) VALUES('Hello', FALSE);
INSERT INTO DemoTable(UserMessage, isValidUser) VALUES('Good', TRUE);
INSERT INTO DemoTable(UserMessage, isValidUser) VALUES('Awesome !!!!!', TRUE);

मौजूदा डेटा

+----+---------------+-------------+
| Id | UserMessage   | isValidUser |
+----+---------------+-------------+
| 1  | Hi            | 1           |
| 2  | Hello         | 0           |
| 3  | Good          | 1           |
| 4  | Awesome !!!!! | 1           |
+----+---------------+-------------+

नोट: MySQL में BOOLEAN, TINYINT(1) का एलियास है: TRUE = 1, FALSE = 0

क्वेरी: बूलियन वैल्यू के आधार पर कॉनकैटिनेट करना

SELECT isValidUser, GROUP_CONCAT(UserMessage) 
FROM DemoTable 
GROUP BY isValidUser;

आउटपुट

+-------------+---------------------------+
| isValidUser | group_concat(UserMessage) |
+-------------+---------------------------+
| 0           | Hello                     |
| 1           | Hi,Good,Awesome !!!!!     |
+-------------+---------------------------+

उन्नत विकल्प

सेपरेटर बदलना

SELECT isValidUser, GROUP_CONCAT(UserMessage SEPARATOR ' | ') 
FROM DemoTable GROUP BY isValidUser;

ऑर्डर के साथ

SELECT isValidUser, GROUP_CONCAT(UserMessage ORDER BY Id SEPARATOR ', ') 
FROM DemoTable GROUP BY isValidUser;

डिस्टिंक्ट मान

SELECT isValidUser, GROUP_CONCAT(DISTINCT UserMessage) 
FROM DemoTable GROUP BY isValidUser;

लंबाई सीमा बढ़ाना (डिफॉल्ट 1024)

SET SESSION group_concat_max_len = 10000;
SELECT isValidUser, GROUP_CONCAT(UserMessage) FROM DemoTable GROUP BY isValidUser;

लेबल के साथ आउटपुट

SELECT 
    CASE isValidUser WHEN 1 THEN 'Valid' ELSE 'Invalid' END AS UserStatus,
    GROUP_CONCAT(UserMessage SEPARATOR ', ') AS Messages
FROM DemoTable 
GROUP BY isValidUser;
+------------+---------------------------+
| UserStatus | Messages                  |
+------------+---------------------------+
| Invalid    | Hello                     |
| Valid      | Hi, Good, Awesome !!!!!   |
+------------+---------------------------+
  1. - MySQL में GROUP_CONCAT और CASE से अलग शर्तों वाले समान कॉलम के मान जोड़ें

    एक ही कॉलम (Name) की अलग-अलग शर्तों (Subject) के मानों को जोड़ने के लिए CASE के साथ सशर्त एग्रीगेशन और CONCAT या GROUP_CONCAT का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1869 ( Id INT, Subject VARCHAR(20), Name VARCHAR(20) ); डेटा डालें mysql> INSERT INTO DemoTable1869 VALUES(

  1. - MySQL में IF() से NULL मानों के आधार पर कस्टम टेक्स्ट कैसे दिखाएं?

    MySQL में किसी कॉलम के NULL मानों के आधार पर कस्टम टेक्स्ट प्रदर्शित करने के लिए IF() फंक्शन (या CASE) का उपयोग करें। यह रिपोर्टिंग, UI डिस्प्ले, और डेटा एक्सपोर्ट में Not Found जैसे संदेश दिखाने के लिए उपयोगी है। उदाहरण: StudentName NULL होने पर कस्टम संदेश डेमो टेबल बनाएं: mysql> CREATE TABL

  1. - MySQL में CASE स्टेटमेंट से छात्र अंकों पर कस्टम संदेश कैसे सेट करें?

    MySQL में CASE स्टेटमेंट का उपयोग करके छात्रों के अंकों (Marks) के आधार पर कस्टम परिणाम संदेश (जैसे Good Marks, Not Good Marks) उत्पन्न करें। यह ग्रेडिंग, रिपोर्टिंग, और सशर्त डेटा लेबलिंग के लिए मानक दृष्टिकोण है। उदाहरण: 40 अंक थ्रेशोल्ड पर संदेश डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTabl