Mục tiêu
Nhóm các bản ghi trùng lặp theo cột StudentFavouriteSubject và nối tên học sinh (StudentName) thành một chuỗi phân cách bằng dấu phẩy.
1. Tạo bảng
mysql> create table DemoTable (
StudentFavouriteSubject varchar(40),
StudentName varchar(40)
);
Query OK, 0 rows affected (0.75 sec)
2. Chèn dữ liệu
mysql> insert into DemoTable values('MySQL','Chris');
mysql> insert into DemoTable values('MongoDB','Bob');
mysql> insert into DemoTable values('MySQL','Sam');
mysql> insert into DemoTable values('Java','Mike');
mysql> insert into DemoTable values('C','Carol');
mysql> insert into DemoTable values('MongoDB','John');
3. Xem dữ liệu
mysql> select * from DemoTable;
+-------------------------+-------------+ | StudentFavouriteSubject | StudentName | +-------------------------+-------------+ | MySQL | Chris | | MongoDB | Bob | | MySQL | Sam | | Java | Mike | | C | Carol | | MongoDB | John | +-------------------------+-------------+ 6 rows in set (0.00 sec)
4. Truy vấn GROUP_CONCAT
mysql> select group_concat(StudentName), StudentFavouriteSubject
from DemoTable group by StudentFavouriteSubject;
Kết quả:
+---------------------------+-------------------------+ | group_concat(StudentName) | StudentFavouriteSubject | +---------------------------+-------------------------+ | Carol | C | | Mike | Java | | Bob,John | MongoDB | | Chris,Sam | MySQL | +---------------------------+-------------------------+ 4 rows in set (0.00 sec)
Ứng dụng: Báo cáo tóm tắt, xuất dữ liệu cho frontend hiển thị gọn.