การรวมหลายคอลัมน์/พารามิเตอร์เป็นสตริงเดียวด้วย CONCAT_WS()
ฟังก์ชัน CONCAT_WS(separator, str1, str2, ...) (Concatenate With Separator) รวมสตริงหลายตัวคั่นด้วย Separator ที่กำหนด และข้าม NULL อัตโนมัติ ใช้สะดวกสำหรับสร้างข้อมูลรวมใน Column เดียวตอน INSERT
สร้างตาราง
mysql> CREATE TABLE DemoTable (
Name VARCHAR(100),
Age INT,
CountryName VARCHAR(100),
PersonInformation TEXT
);
Query OK, 0 rows affected (0.67 sec)
คำสั่ง INSERT พร้อม CONCAT_WS สร้าง PersonInformation
mysql> INSERT INTO DemoTable VALUES('John',21,'US',CONCAT_WS('-',Name,Age,CountryName));
mysql> INSERT INTO DemoTable VALUES('Chris',22,'AUS',CONCAT_WS('-',Name,Age,CountryName));
mysql> INSERT INTO DemoTable VALUES('Bob',24,'UK',CONCAT_WS('-',Name,Age,CountryName));
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+-------+------+-------------+-------------------+
| Name | Age | CountryName | PersonInformation |
+-------+------+-------------+-------------------+
| John | 21 | US | John-21-US |
| Chris | 22 | AUS | Chris-22-AUS |
| Bob | 24 | UK | Bob-24-UK |
+-------+------+-------------+-------------------+
3 rows in set (0.00 sec)
คำอธิบาย
CONCAT_WS('-', Name, Age, CountryName): รวม Name, Age, CountryName คั่นด้วย '-'- Age (INT) จะถูกแปลงเป็นสตริงอัตโนมัติ
- หากมีค่า NULL ในคอลัมน์ใด CONCAT_WS จะข้ามไป (ไม่ใส่ Separator สองช่องติดกัน)
- ต่างจาก
CONCAT()ที่ NULL ทำให้ทั้งสตริงเป็น NULL - เหมาะสำหรับสร้าง Log, Audit Trail, หรือ Display String