Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ใช้ GROUP BY รวมสตริงใน MySQL และกำหนดตัวคั่น (Separator)


เพื่อรวมสตริงใน MySQL ด้วย GROUP BY ใช้ฟังก์ชัน GROUP_CONCAT() พร้อมพารามิเตอร์ SEPARATOR เช่น คอมม่า (,) หรือช่องว่าง ( )

รูปแบบไวยากรณ์

SELECT yourColumnName1, GROUP_CONCAT(yourColumnName2 SEPARATOR 'yourValue') AS anyVariableName FROM yourTableName GROUP BY yourColumnName1;

ตัวอย่างการใช้งาน

สร้างตาราง:

mysql> create table GroupConcatenateDemo ( Id int, Name varchar(20) ); Query OK, 0 rows affected (0.99 sec)

เพิ่มข้อมูล (Id ซ้ำกันหลายแถว):

mysql> insert into GroupConcatenateDemo values(10,'Larry'); Query OK, 1 row affected (0.41 sec)
mysql> insert into GroupConcatenateDemo values(11,'Mike'); Query OK, 1 row affected (0.18 sec)
mysql> insert into GroupConcatenateDemo values(12,'John'); Query OK, 1 row affected (0.14 sec)
mysql> insert into GroupConcatenateDemo values(10,'Elon'); Query OK, 1 row affected (0.63 sec)
mysql> insert into GroupConcatenateDemo values(10,'Bob'); Query OK, 1 row affected (0.12 sec)
mysql> insert into GroupConcatenateDemo values(11,'Sam'); Query OK, 1 row affected (0.14 sec)

แสดงข้อมูล:

mysql> select *from GroupConcatenateDemo;

ผลลัพธ์:

+------+-------+ | Id   | Name  | +------+-------+ | 10   | Larry | | 11   | Mike  | | 12   | John  | | 10   | Elon  | | 10   | Bob   | | 11   | Sam   | +------+-------+ 6 rows in set (0.00 sec)

คำสั่ง GROUP BY พร้อม GROUP_CONCAT คั่นด้วยคอมม่า:

mysql> SELECT Id, GROUP_CONCAT(Name SEPARATOR ',') AS GroupConcatDemo FROM GroupConcatenateDemo GROUP BY Id;

ผลลัพธ์:

+------+-----------------+ | Id   | GroupConcatDemo | +------+-----------------+ | 10   | Larry,Elon,Bob  | | 11   | Mike,Sam        | | 12   | John            | +------+-----------------+ 3 rows in set (0.00 sec)

หมายเหตุ: ความยาวสูงสุดของผลลัพธ์ GROUP_CONCAT ควบคุมด้วยตัวแปรระบบ group_concat_max_len (ค่าเริ่มต้น 1024 ไบต์)