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

Gộp nhiều dòng thành một trường bằng GROUP_CONCAT trong MySQL

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