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

Nối chuỗi với GROUP_CONCAT() và CONCAT() cùng lúc trong MySQL

Kết hợp CONCAT() (nối các cột trong một hàng) và GROUP_CONCAT() (gộp nhiều hàng thành một chuỗi).

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable799(UserId INT, UserName VARCHAR(100), UserAge INT); 
Query OK, 0 rows affected (0.56 sec)

mysql> INSERT INTO DemoTable799 VALUES 
(101,'John',21), (102,'Chris',26), (101,'Robert',23), 
(103,'David',24), (101,'Mike',29); 
Query OK, 5 rows affected

Nối 'MR.' với tên, sau đó gộp theo UserId

mysql> SELECT UserId, GROUP_CONCAT(CONCAT('MR.', UserName)) 
FROM DemoTable799 
GROUP BY UserId;

Kết quả:

+--------+---------------------------------------+
| UserId | GROUP_CONCAT(CONCAT('MR.', UserName)) |
+--------+---------------------------------------+
| 101    | MR.John,MR.Robert,MR.Mike             |
| 102    | MR.Chris                              |
| 103    | MR.David                              |
+--------+---------------------------------------+

Ứng dụng: Tạo danh sách tên định dạng cho báo cáo, xuất CSV, hiển thị tag, v.v.

Mẹo: Thêm ORDER BY UserName trong GROUP_CONCAT: GROUP_CONCAT(CONCAT('MR.', UserName) ORDER BY UserName).