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

ต่อข้อความสองคอลัมน์พร้อมเว้นวรรคใน MySQL ด้วย CONCAT()

บทนำ

การรวมข้อความจากหลายคอลัมน์เข้าด้วยกันพร้อมตัวคั่น (เช่น เว้นวรรค) ใช้ฟังก์ชัน CONCAT() ได้ทั้งใน SELECT และ UPDATE

ตัวอย่างการสร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(20),
    -> Subject VARCHAR(100)
    -> );
Query OK, 0 rows affected (17.73 sec)
mysql> INSERT INTO DemoTable(Name, Subject) VALUES('John', 'MySQL');
mysql> INSERT INTO DemoTable(Name, Subject) VALUES('Chris', 'SQL Server');
mysql> INSERT INTO DemoTable(Name, Subject) VALUES('Robert', 'MongoDB');

แสดงข้อมูลก่อนอัปเดต

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+----+--------+------------+
| Id | Name   | Subject    |
+----+--------+------------+
| 1  | John   | MySQL      |
| 2  | Chris  | SQL Server |
| 3  | Robert | MongoDB    |
+----+--------+------------+
3 rows in set (0.00 sec)

คำสั่งอัปเดต: รวม Name + เว้นวรรค + Subject เข้าไปใน Subject

mysql> UPDATE DemoTable
    -> SET Subject = CONCAT(Name, ' ', Subject);

ตรวจสอบผลลัพธ์

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+----+--------+------------------+
| Id | Name   | Subject        |
+----+--------+------------------+
| 1  | John   | John MySQL     |
| 2  | Chris  | Chris SQL Server |
| 3  | Robert | Robert MongoDB |
+----+--------+------------------+
3 rows in set (0.00 sec)

รูปแบบ CONCAT แบบต่างๆ

-- CONCAT ธรรมดา (ไม่มีตัวคั่น)
CONCAT('Hello', 'World')  -- 'HelloWorld'

-- CONCAT พร้อมตัวคั่น
CONCAT('Hello', ' ', 'World')  -- 'Hello World'

-- CONCAT_WS (With Separator) - ใส่ตัวคั่นอัตโนมัติ ข้าม NULL
CONCAT_WS(' ', 'Hello', NULL, 'World')  -- 'Hello World'

-- ใช้ใน SELECT
SELECT CONCAT(FirstName, ' ', LastName) AS FullName FROM Users;

ข้อควรระวัง

  • UPDATE นี้จะเปลี่ยนข้อมูลถาวร ควร Backup หรือทดสอบด้วย SELECT ก่อน
  • หากคอลัมน์มี NULL, CONCAT จะคืน NULL (ใช้ CONCAT_WS หรือ COALESCE ป้องกันได้)