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 !!!!! | +------------+---------------------------+