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

ใช้ CASE WHEN ในคำสั่ง UPDATE ของ MySQL

ใช้ CASE WHEN ... THEN ... ELSE ... END ภายในคำสั่ง UPDATE เพื่ออัปเดตค่าแบบมีเงื่อนไขหลายระดับ

สร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserScore INT
);
mysql> INSERT INTO DemoTable(UserScore) VALUES (100), (110), (120), (200), (230), (250), (270);

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

mysql> SELECT * FROM DemoTable;
+--------+-----------+
| UserId | UserScore |
+--------+-----------+
|      1 |       100 |
|      2 |       110 |
|      3 |       120 |
|      4 |       200 |
|      5 |       230 |
|      6 |       250 |
|      7 |       270 |
+--------+-----------+

คำสั่ง UPDATE ด้วย CASE

mysql> UPDATE DemoTable
    -> SET UserScore = CASE
    ->     WHEN UserScore BETWEEN 100 AND 120 THEN UserScore + 5
    ->     WHEN UserScore BETWEEN 130 AND 230 THEN UserScore + 10
    ->     WHEN UserScore >= 250 THEN UserScore * 5
    ->     ELSE UserScore
    -> END;
Query OK, 7 rows affected (0.06 sec)

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

mysql> SELECT * FROM DemoTable;
+--------+-----------+
| UserId | UserScore |
+--------+-----------+
|      1 |       105 |
|      2 |       115 |
|      3 |       125 |
|      4 |       210 |
|      5 |       240 |
|      6 |      1250 |
|      7 |      1350 |
+--------+-----------+

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