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

รวมค่าคอลัมน์เดียวเป็นสตริงเดียวด้วย GROUP_CONCAT ใน MySQL

ใช้ฟังก์ชัน GROUP_CONCAT() ร่วมกับ CONCAT() เพื่อรวมค่าทั้งหมดในคอลัมน์เดียวให้เป็นสตริงเดียว คั่นด้วยเครื่องหมายคอมมา

สร้างตารางตัวอย่าง

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(20)
);

เพิ่มข้อมูล

mysql> INSERT INTO DemoTable(FirstName) VALUES ('John');
mysql> INSERT INTO DemoTable(FirstName) VALUES ('Larry');
mysql> INSERT INTO DemoTable(FirstName) VALUES ('Chris');
mysql> INSERT INTO DemoTable(FirstName) VALUES ('Robert');
mysql> INSERT INTO DemoTable(FirstName) VALUES ('David');

ดูข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;
+----+-----------+
| Id | FirstName |
+----+-----------+
|  1 | John      |
|  2 | Larry     |
|  3 | Chris     |
|  4 | Robert    |
|  5 | David     |
+----+-----------+

คำสั่งรวมค่าพร้อมเพิ่มเครื่องหมายคำพูด

mysql> SELECT GROUP_CONCAT(CONCAT('"', FirstName, '"')) AS FirstName
    -> FROM DemoTable;

ผลลัพธ์

+-----------------------------------------+
| FirstName                               |
+-----------------------------------------+
| "John","Larry","Chris","Robert","David" |
+-----------------------------------------+

เคล็ดลับ: สามารถเปลี่ยนตัวคั่นได้ด้วย SEPARATOR เช่น GROUP_CONCAT(...) SEPARATOR '; '