Giới thiệu
Hàm tổng hợp GROUP_CONCAT() cho phép nối các giá trị từ nhiều hàng thành một chuỗi duy nhất, thường dùng để hiển thị danh sách liên quan (ví dụ: các sinh viên cùng môn học).
Ví dụ minh họa
Bước 1: Tạo bảng và chèn dữ liệu
CREATE TABLE DemoTable2024 (
SubjectName VARCHAR(20),
StudentName VARCHAR(20)
);
INSERT INTO DemoTable2024 VALUES ('MySQL', 'Chris');
INSERT INTO DemoTable2024 VALUES ('MySQL', 'David');
INSERT INTO DemoTable2024 VALUES ('MongoDB', 'Bob');
INSERT INTO DemoTable2024 VALUES ('Java', 'Sam');
INSERT INTO DemoTable2024 VALUES ('MongoDB', 'Mike');
Bước 2: Gom nhóm theo SubjectName, nối StudentName
SELECT SubjectName, GROUP_CONCAT(StudentName)
FROM DemoTable2024
GROUP BY SubjectName;
Kết quả:
+-------------+---------------------------+
| SubjectName | group_concat(StudentName) |
+-------------+---------------------------+
| Java | Sam |
| MongoDB | Bob,Mike |
| MySQL | Chris,David |
+-------------+---------------------------+
Tùy chỉnh:
- Đổi dấu phân cách:
GROUP_CONCAT(StudentName SEPARATOR ' | ') - Sắp xếp trong nhóm:
GROUP_CONCAT(StudentName ORDER BY StudentName) - Giới hạn độ dài kết quả: biến hệ thống
group_concat_max_len(mặc định 1024 byte).