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

การอัปเดตข้อมูลใน MySQL ตามเงื่อนไขด้วยคำสั่ง CASE

เมื่อต้องการอัปเดตระเบียนใน 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 เพื่อกำหนดค่าเริ่มต้นได้)

วิธีนี้เหมาะสำหรับการอัปเดตข้อมูลจำนวนมากที่ต้องการเปลี่ยนค่าแตกต่างกันไปตามค่าเดิมของแต่ละแถว โดยใช้คำสั่งเพียงครั้งเดียว