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

Insert หลายพารามิเตอร์เข้า Column เดียวใน MySQL ด้วย CONCAT_WS()

การรวมหลายคอลัมน์/พารามิเตอร์เป็นสตริงเดียวด้วย 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