Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Nối hàng theo giá trị boolean trong cột khác với MySQL

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).