Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để sử dụng câu lệnh MySQL CASE trong khi sử dụng Truy vấn CẬP NHẬT?

Để sử dụng câu lệnh CASE của MySQL trong khi sử dụng Truy vấn CẬP NHẬT, bạn có thể sử dụng câu lệnh CASE. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   (
   UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserScore int
   );
Query OK, 0 rows affected (0.29 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable(UserScore) values(100);
Query OK, 1 row affected (0.22 sec)

mysql> insert into DemoTable(UserScore) values(110);
Query OK, 1 row affected (0.07 sec)

mysql> insert into DemoTable(UserScore) values(120);
Query OK, 1 row affected (0.08 sec)

mysql> insert into DemoTable(UserScore) values(200);
Query OK, 1 row affected (0.05 sec)

mysql> insert into DemoTable(UserScore) values(230);
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable(UserScore) values(250);
Query OK, 1 row affected (0.03 sec)

mysql> insert into DemoTable(UserScore) values(270);
Query OK, 1 row affected (0.06 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+--------+-----------+
| UserId | UserScore |
+--------+-----------+
|      1 |       100 |
|      2 |       110 |
|      3 |       120 |
|      4 |       200 |
|      5 |       230 |
|      6 |       250 |
|      7 |       270 |
+--------+-----------+
7 rows in set (0.00 sec)

Sau đây là truy vấn sử dụng câu lệnh CASE trong khi sử dụng truy vấn UPDATE -

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)
Rows matched: 7 Changed: 7 Warnings: 0

Giờ đây, bạn có thể hiển thị lại tất cả các bản ghi từ bảng -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+--------+-----------+
| UserId | UserScore |
+--------+-----------+
|      1 |       105 |
|      2 |       115 |
|      3 |       125 |
|      4 |       210 |
|      5 |       240 |
|      6 |      1250 |
|      7 |      1350 |
+--------+-----------+
7 rows in set (0.00 sec)