ใช้ 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)