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).