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

Gộp nhiều bản ghi văn bản thành một trong MySQL

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ộp
  • DISTINCT: Loại bỏ trùng lặp
  • GROUP_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.