Mass Update หลายเงื่อนไขด้วย CASE WHEN THEN ELSE
เมื่อต้องการอัปเดตคอลัมน์เดียวกันแต่ให้ค่าต่างกันตามเงื่อนไขหลายๆ เงื่อนไขในคำสั่งเดียว สามารถใช้ CASE WHEN THEN ELSE END ภายในคำสั่ง UPDATE ได้
รูปแบบคำสั่ง (Syntax)
UPDATE yourTableName
SET yourColumnName = CASE
WHEN yourColumnName = Value1 THEN newValue1
WHEN yourColumnName = Value2 THEN newValue2
WHEN yourColumnName = Value3 THEN newValue3
WHEN yourColumnName = Value4 THEN newValue4
ELSE yourColumnName
END;
ตัวอย่างการใช้งาน
สร้างตาราง CaseUpdateDemo:
CREATE TABLE CaseUpdateDemo (
Id INT,
Name VARCHAR(100)
);
เพิ่มข้อมูล:
INSERT INTO CaseUpdateDemo VALUES
(1, 'John'),
(2, 'Carol'),
(3, 'Mike'),
(4, 'Bob');
ข้อมูลก่อนอัปเดต:
| Id | Name |
|---|---|
| 1 | John |
| 2 | Carol |
| 3 | Mike |
| 4 | Bob |
อัปเดตคอลัมน์ Id ให้เพิ่มค่า 1000 ตามเงื่อนไข:
UPDATE CaseUpdateDemo
SET Id = CASE
WHEN Id = 1 THEN 1001
WHEN Id = 2 THEN 1002
WHEN Id = 3 THEN 1003
WHEN Id = 4 THEN 1004
ELSE Id
END;
ผลลัพธ์หลังอัปเดต:
| Id | Name |
|---|---|
| 1001 | John |
| 1002 | Carol |
| 1003 | Mike |
| 1004 | Bob |
ประโยชน์: วิธีนี้ช่วยให้อัปเดตหลายเงื่อนไขในคำสั่งเดียว ลดจำนวนคำสั่ง UPDATE และเพิ่มประสิทธิภาพการทำงาน