ใช้ฟังก์ชัน CONCAT() เพื่อรวมค่าจากหลายคอลัมน์และข้อความคงที่ (Literal String) ให้กลายเป็นคอลัมน์เดียว
ตัวอย่างการใช้งาน
1. สร้างตาราง
mysql> CREATE TABLE DemoTable (
Id INT,
Name VARCHAR(20)
);
Query OK, 0 rows affected (0.93 sec)
2. เพิ่มข้อมูลทดสอบ
mysql> INSERT INTO DemoTable VALUES(101, 'Chris'); Query OK, 1 row affected (0.25 sec) mysql> INSERT INTO DemoTable VALUES(102, 'David'); Query OK, 1 row affected (0.23 sec) mysql> INSERT INTO DemoTable VALUES(103, 'Robert'); Query OK, 1 row affected (0.16 sec)
3. แสดงข้อมูลเดิม
mysql> SELECT * FROM DemoTable; +------+--------+ | Id | Name | +------+--------+ | 101 | Chris | | 102 | David | | 103 | Robert | +------+--------+
4. ใช้ CONCAT() รวมคอลัมน์พร้อมข้อความ
mysql> SELECT CONCAT('The student id and name is= ', Id, ',', Name, ' .') FROM DemoTable;
5. ผลลัพธ์
+---------------------------------------------------------------+
| CONCAT('The student id and name is= ', Id, ',', Name, ' .') |
+---------------------------------------------------------------+
| The student id and name is= 101,Chris . |
| The student id and name is= 102,David . |
| The student id and name is= 103,Robert . |
+---------------------------------------------------------------+
ฟังก์ชัน CONCAT() และ CONCAT_WS()
| ฟังก์ชัน | คำอธิบาย | ตัวอย่าง |
|---|---|---|
CONCAT(str1, str2, ...) | รวมสตริงโดยตรง ถ้ามีค่า NULL จะได้ NULL | CONCAT('A', 'B') = 'AB' |
CONCAT_WS(sep, str1, str2, ...) | รวมสตริงด้วย Separator (ข้ามค่า NULL) | CONCAT_WS(',', 'A', NULL, 'B') = 'A,B' |
เคล็ดลับ: จัดการค่า NULL
-- ใช้ IFNULL หรือ COALESCE ป้องกันผลลัพธ์เป็น NULL
SELECT CONCAT('Name: ', IFNULL(Name, 'N/A')) FROM DemoTable;
-- หรือใช้ CONCAT_WS
SELECT CONCAT_WS(' ', 'Name:', Name) FROM DemoTable;
สรุป
CONCAT() เหมาะสำหรับสร้างข้อความแสดงผล (Display String) รวมคอลัมน์และข้อความคงที่ ต้องระวังค่า NULL ที่จะทำให้ผลลัพธ์เป็น NULL ทั้งหมด ควรใช้ IFNULL() หรือ CONCAT_WS() ช่วยจัดการ