Nối chuỗi nhiều hàng thành một chuỗi với GROUP_CONCAT()
Hàm GROUP_CONCAT() gộp giá trị từ nhiều hàng thành một chuỗi, có thể chỉ định dấu phân cách.
Tạo bảng và dữ liệu
mysql> create table DemoTable1611 ( Value text ); Query OK, 0 rows affected (0.86 sec)
mysql> insert into DemoTable1611 values('John');
mysql> insert into DemoTable1611 values('is');
mysql> insert into DemoTable1611 values('learning');
mysql> insert into DemoTable1611 values('Java');
mysql> insert into DemoTable1611 values('with');
mysql> insert into DemoTable1611 values('MySQL Database');
Truy vấn gộp chuỗi
mysql> select group_concat(Value separator ' ') from DemoTable1611;
Kết quả
+-------------------------------------------+ | group_concat(Value separator ' ') | +-------------------------------------------+ | John is learning Java with MySQL Database | +-------------------------------------------+
Các tùy chọn hữu ích:
SEPARATOR ',': Phân cách bằng dấu phẩy (mặc định)ORDER BY cot: Sắp xếp trước khi gộpDISTINCT: Loại bỏ trùng lặpGROUP_CONCAT_MAX_LEN: Giới hạn độ dài kết quả (mặc định 1024 byte)
Ví dụ nâng cao:
SELECT GROUP_CONCAT(DISTINCT Name ORDER BY Name SEPARATOR ', ') FROM Users GROUP BY Department;
⚠️ Lưu ý: Kết quả bị cắt ngắn nếu vượt quá group_concat_max_len. Tăng giá trị này bằng SET SESSION group_concat_max_len = 1000000; nếu cần.