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

Gom tất cả giá trị cột thành một hàng, phân tách bằng dấu phẩy với GROUP_CONCAT

Tạo bảng quốc gia

mysql> CREATE TABLE DemoTable1371 (
    -> Id INT,
    -> CountryName VARCHAR(40)
    -> );
Query OK, 0 rows affected (0.89 sec)
mysql> INSERT INTO DemoTable1371 VALUES(100,'US'),(100,'UK'),(101,'AUS'),(101,'Angola');

Dữ liệu

mysql> SELECT * FROM DemoTable1371;
+------+-------------+
| Id   | CountryName |
+------+-------------+
| 100  | US          |
| 100  | UK          |
| 101  | AUS         |
| 101  | Angola      |
+------+-------------+

Truy vấn GROUP_CONCAT không cần GROUP BY

mysql> SELECT GROUP_CONCAT(CountryName SEPARATOR ',')
    -> FROM DemoTable1371;

Kết quả: Một hàng, các quốc gia cách nhau bởi dấu phẩy

+-----------------------------------------+
| GROUP_CONCAT(CountryName SEPARATOR ',') |
+-----------------------------------------+
| US,UK,AUS,Angola                        |
+-----------------------------------------+

Lưu ý: Mặc định GROUP_CONCAT giới hạn 1024 ký tự. Tăng bằng SET SESSION group_concat_max_len = 1000000;. Nếu cần gom theo nhóm, thêm GROUP BY Id.