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

Truy vấn MySQL gộp tất cả hàng thành một dòng (GROUP_CONCAT)

Hàm GROUP_CONCAT() nối các giá trị của một cột thành một chuỗi, phân cách bởi dấu tùy chọn.

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable1355 (Location TEXT);

Chèn dữ liệu:

mysql> INSERT INTO DemoTable1355 VALUES('E:'), ('AllPrograms'), ('ChatApplicationInJava'), ('MainFolder');

Xem dữ liệu:

mysql> SELECT * FROM DemoTable1355;
+-----------------------+
| Location              |
+-----------------------+
| E:                    |
| AllPrograms           |
| ChatApplicationInJava |
| MainFolder            |
+-----------------------+

Nối thành một chuỗi, phân cách bằng '/':

mysql> SELECT GROUP_CONCAT(Location SEPARATOR '/') FROM DemoTable1355;

Kết quả:

+-------------------------------------------------+
| GROUP_CONCAT(Location SEPARATOR '/')              |
+-------------------------------------------------+
| E:/AllPrograms/ChatApplicationInJava/MainFolder |
+-------------------------------------------------+

Tùy chọn quan trọng:

  • SEPARATOR '/': dấu phân cách (mặc định ',').
  • ORDER BY Location: sắp xếp trước khi nối: GROUP_CONCAT(Location ORDER BY Location SEPARATOR '/').
  • DISTINCT: bỏ trùng: GROUP_CONCAT(DISTINCT Location ...).

Giới hạn: Độ dài kết quả tối đa group_concat_max_len (mặc định 1024 bytes). Tăng: SET SESSION group_concat_max_len = 1000000;.