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

วิธีอัปเดตทุกแถวเพิ่มคำนำหน้าข้อความด้วย CONCAT ใน MySQL

ใช้ CONCAT() รวมสตริงคงที่กับคอลัมน์เดิมใน UPDATE

คำสั่ง UPDATE ร่วมกับ CONCAT('prefix ', column) เพิ่มข้อความนำหน้า (Prefix) ให้ทุกแถวในคอลัมน์ข้อความ

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

CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Subject VARCHAR(200)
);

INSERT INTO DemoTable (Subject) VALUES ('MySQL'), ('MongoDB'), ('Java');

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

+----+---------+
| Id | Subject |
+----+---------+
| 1  | MySQL   |
| 2  | MongoDB |
| 3  | Java    |
+----+---------+

คำสั่งอัปเดตเพิ่มคำนำหน้า

UPDATE DemoTable 
SET Subject = CONCAT('My Favourite Subject is ', Subject);

ข้อมูลหลังอัปเดต

+----+---------------------------------+
| Id | Subject                         |
+----+---------------------------------+
| 1  | My Favourite Subject is MySQL   |
| 2  | My Favourite Subject is MongoDB |
| 3  | My Favourite Subject is Java    |
+----+---------------------------------+

คำอธิบาย: CONCAT('My Favourite Subject is ', Subject) รวมสตริงคงที่กับค่าเดิมของ Subject

ประยุกต์ใช้:

  • เพิ่ม Suffix: CONCAT(Subject, ' (Updated)')
  • จัดรูปแบบ: CONCAT('[', UPPER(Subject), ']')
  • เงื่อนไข: WHERE Subject NOT LIKE 'My Favourite%' (กันซ้ำ)

⚠ ข้อควรระวัง:

  • UPDATE โดยไม่มี WHERE จะเปลี่ยนทุกแถว → ควรทดสอบด้วย SELECT ก่อน
  • ความยาวสตริงใหม่ต้องไม่เกิน VARCHAR(n) ที่กำหนด (จะ Error: Data too long)
  • ใช้ Transaction เพื่อความปลอดภัย

ฟังก์ชันรวมสตริงอื่น: CONCAT_WS(',', col1, col2, col3) รวมด้วย Separator (Skip NULL)