การจัดกลุ่มและรวมข้อความด้วย CONCAT_WS และ GROUP_CONCAT
ใช้ CONCAT_WS('-', UserName, UserId) รวมชื่อและ ID คั่น '-' แล้ว GROUP_CONCAT รวมแถวในกลุ่มเดียวกัน
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable2016 (
-> UserId INT,
-> UserName VARCHAR(20)
-> );
Query OK, 0 rows affected (0.51 sec)
mysql> INSERT INTO DemoTable2016 VALUES(1, 'Chris');
mysql> INSERT INTO DemoTable2016 VALUES(2, 'Bob');
mysql> INSERT INTO DemoTable2016 VALUES(1, 'David');
mysql> INSERT INTO DemoTable2016 VALUES(2, 'Carol');
mysql> INSERT INTO DemoTable2016 VALUES(1, 'Sam');
คำสั่ง SQL จัดกลุ่มและรวม
mysql> SELECT GROUP_CONCAT(CONCAT_WS('-', UserName, UserId))
-> FROM DemoTable2016
-> GROUP BY UserId;
ผลลัพธ์:
+----------------------------------------------+
| group_concat(concat_ws('-',UserName,UserId)) |
+----------------------------------------------+
| Chris-1,David-1,Sam-1 |
| Bob-2,Carol-2 |
+----------------------------------------------+
คำอธิบาย: CONCAT_WS('-', UserName, UserId) สร้างสตริง 'Chris-1' ต่อแถว GROUP_CONCAT รวมสตริงในแต่ละกลุ่ม GROUP BY UserId คั่นด้วยคอมม่า (default) สามารถเปลี่ยนด้วย SEPARATOR