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

จะใช้คำสั่ง MySQL CASE ในขณะที่ใช้ UPDATE Query ได้อย่างไร


สำหรับการใช้คำสั่ง MySQL CASE ในขณะที่ใช้ UPDATE Query คุณสามารถใช้คำสั่ง CASE ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable ( UserId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, UserScore int ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.29 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable(UserScore) (100) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงในค่า DemoTable (UserScore) (110) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.07 วินาที) mysql> แทรกลงในค่า DemoTable (UserScore) (120); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.08 วินาที) mysql> แทรกลงในค่า DemoTable (UserScore) (200); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.05 วินาที) mysql> แทรกลงใน DemoTable (UserScore) ค่า (230); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable (UserScore) (250); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.03 วินาที) mysql> แทรกลงในค่า DemoTable (UserScore) (270);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.06 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+---------+-----------+| รหัสผู้ใช้ | UserScore |+---------+-----------+| 1 | 100 || 2 | 110 || 3 | 120 || 4 | 200 || 5 | 230 || 6 | 250 || 7 | 270 |+--------+-----------+7 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อใช้คำสั่ง CASE ในขณะที่ใช้แบบสอบถาม UPDATE -

mysql> อัปเดตชุด DemoTable UserScore =CASE เมื่อ UserScore ระหว่าง 100 ถึง 120 แล้ว UserScore + 5 เมื่อ UserScore ระหว่าง 130 และ 230 UserScore +10 เมื่อ UserScore>=250 THEN UserScore * 5 ELSE UserScore END; Query OK, 7 แถวได้รับผลกระทบ (0.06 วินาที) แถวที่ตรงกัน:7 เปลี่ยน:7 คำเตือน:0

ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางได้อีกครั้ง -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+---------+-----------+| รหัสผู้ใช้ | UserScore |+---------+-----------+| 1 | 105 || 2 | 115 || 3 | 125 || 4 | 210 || 5 | 240 || 6 | 1250 || 7 | 1350 |+-------+-----------+7 แถวในชุด (0.00 วินาที)