บทความนี้สาธิตการใช้ CONCAT() เพิ่มคำนำหน้า "MR." ให้ทุกชื่อ แล้วใช้ GROUP_CONCAT() รวมชื่อในกลุ่มเดียวกัน (Group by UserId) เป็นสตริงเดียว คั่นด้วยจุลภาค
สร้างตารางและข้อมูลทดสอบ
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);
mysql> INSERT INTO DemoTable799 VALUES(102, 'Chris', 26);
mysql> INSERT INTO DemoTable799 VALUES(101, 'Robert', 23);
mysql> INSERT INTO DemoTable799 VALUES(103, 'David', 24);
mysql> INSERT INTO DemoTable799 VALUES(101, 'Mike', 29);
คิวรี GROUP_CONCAT พร้อม CONCAT คำนำหน้า
mysql> SELECT UserId, GROUP_CONCAT(CONCAT('MR.', UserName))
FROM DemoTable799
GROUP BY UserId;
ผลลัพธ์
+--------+---------------------------------------+
| UserId | GROUP_CONCAT(CONCAT('MR.', UserName)) |
+--------+---------------------------------------+
| 101 | MR.John,MR.Robert,MR.Mike |
| 102 | MR.Chris |
| 103 | MR.David |
+--------+---------------------------------------+
คำอธิบาย:
CONCAT('MR.', UserName)- เพิ่ม "MR." นำหน้าชื่อแต่ละคนGROUP_CONCAT(...)- รวมค่าที่ผ่าน CONCAT แล้ว ในแต่ละกลุ่ม UserId- Default Separator คือ จุลภาค (,) สามารถเปลี่ยนได้ด้วย
SEPARATOR ' / ' GROUP_CONCAT_MAX_LEN(Default 1024) จำกัดความยาวผลลัพธ์ อาจต้องเพิ่มสำหรับข้อมูลเยอะ