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

Gom các hàng thành danh sách phân cách bằng dấu phẩy bằng một truy vấn MySQL

Kỹ thuật

Sử dụng GROUP_CONCAT() kết hợp GROUP BY trên cột khóa để gom các giá trị cột khác thành chuỗi phân cách bằng dấu phẩy (mặc định).

1. Tạo bảng

mysql> create table DemoTable (
    Id int,
    Name varchar(40)
);
Query OK, 0 rows affected (0.52 sec)

2. Chèn dữ liệu

mysql> insert into DemoTable values(100,'Chris Brown');
mysql> insert into DemoTable values(101,'Adam Smith');
mysql> insert into DemoTable values(101,'John Doe');
mysql> insert into DemoTable values(100,'David Miller');
mysql> insert into DemoTable values(101,'Carol Taylor');
mysql> insert into DemoTable values(103,'Bob Taylor');

3. Xem dữ liệu

mysql> select * from DemoTable;
+------+--------------+
| Id   | Name         |
+------+--------------+
| 100  | Chris Brown  |
| 101  | Adam Smith   |
| 101  | John Doe     |
| 100  | David Miller |
| 101  | Carol Taylor |
| 103  | Bob Taylor   |
+------+--------------+
6 rows in set (0.00 sec)

4. Truy vấn GROUP_CONCAT

mysql> select Id, group_concat(Name) from DemoTable group by Id;

Kết quả:

+------+----------------------------------+
| Id   | group_concat(Name)               |
+------+----------------------------------+
| 100  | Chris Brown,David Miller         |
| 101  | Adam Smith,John Doe,Carol Taylor |
| 103  | Bob Taylor                       |
+------+----------------------------------+
3 rows in set (0.00 sec)

Tùy chỉnh: Dùng GROUP_CONCAT(Name SEPARATOR '; ') để đổi dấu phân cách.