Sử dụng GROUP_CONCAT() kết hợp GROUP BY trên cột boolean để gom chuỗi theo nhóm true/false.
Tạo bảng có cột boolean
mysql> CREATE TABLE DemoTable(
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserMessage VARCHAR(100),
IsValidUser BOOLEAN
);
Query OK, 0 rows affected (0.63 sec)
mysql> INSERT INTO DemoTable(UserMessage, IsValidUser) VALUES
('Hi', TRUE), ('Hello', FALSE), ('Good', TRUE), ('Awesome !!!!!', TRUE);
Query OK, 4 rows affected
Nối tin nhắn theo nhóm IsValidUser
mysql> SELECT IsValidUser, GROUP_CONCAT(UserMessage) FROM DemoTable GROUP BY IsValidUser;
Kết quả:
+-------------+---------------------------+ | IsValidUser | GROUP_CONCAT(UserMessage) | +-------------+---------------------------+ | 0 | Hello | | 1 | Hi,Good,Awesome !!!!! | +-------------+---------------------------+
Giải thích: Trong MySQL, BOOLEAN là alias của TINYINT(1), giá trị TRUE = 1, FALSE = 0. GROUP BY IsValidUser tạo 2 nhóm: 0 và 1.
Mở rộng: Thêm ORDER BY UserMessage trong GROUP_CONCAT để sắp xếp trong chuỗi: GROUP_CONCAT(UserMessage ORDER BY UserMessage).