เมื่อต้องการอัปเดตระเบียนใน MySQL ตามเงื่อนไขที่กำหนด สามารถใช้คำสั่ง CASE ร่วมกับคำสั่ง UPDATE ได้ ซึ่งช่วยให้สามารถเปลี่ยนค่าของคอลัมน์ต่างกันไปตามค่าเดิมของแต่ละแถว
ตัวอย่างการใช้งาน
สร้างตารางตัวอย่าง:
mysql> CREATE TABLE DemoTable1481 (
-> PlayerScore INT
-> );
เพิ่มข้อมูลทดสอบ:
mysql> INSERT INTO DemoTable1481 VALUES (454); mysql> INSERT INTO DemoTable1481 VALUES (765); mysql> INSERT INTO DemoTable1481 VALUES (890);
ดูข้อมูลก่อนอัปเดต:
mysql> SELECT * FROM DemoTable1481; +-------------+ | PlayerScore | +-------------+ | 454 | | 765 | | 890 | +-------------+
ใช้คำสั่ง UPDATE พร้อม CASE เพื่อเปลี่ยนค่าตามเงื่อนไข:
mysql> UPDATE DemoTable1481
-> SET PlayerScore = CASE
-> WHEN PlayerScore = 454 THEN 1256
-> WHEN PlayerScore = 765 THEN 1865
-> WHEN PlayerScore = 890 THEN 3990
-> END;
ผลลัพธ์หลังอัปเดต:
mysql> SELECT * FROM DemoTable1481; +-------------+ | PlayerScore | +-------------+ | 1256 | | 1865 | | 3990 | +-------------+
คำอธิบาย
- CASE WHEN ... THEN ... END : ตรวจสอบเงื่อนไขทีละขั้นตอน และคืนค่าที่ตรงกับเงื่อนไขแรกที่เป็นจริง
- สามารถเพิ่มเงื่อนไขได้หลายกรณีตามต้องการ
- หากไม่มีเงื่อนไขใดตรงกัน ค่าจะไม่เปลี่ยนแปลง (อาจเพิ่ม
ELSEเพื่อกำหนดค่าเริ่มต้นได้)
วิธีนี้เหมาะสำหรับการอัปเดตข้อมูลจำนวนมากที่ต้องการเปลี่ยนค่าแตกต่างกันไปตามค่าเดิมของแต่ละแถว โดยใช้คำสั่งเพียงครั้งเดียว