Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cập nhật ID theo điều kiện với CASE trong MySQL

Giới thiệu

Sử dụng mệnh đề CASE trong câu lệnh UPDATE để gán giá trị ID khác nhau dựa trên điều kiện tên.

1. Tạo bảng và dữ liệu

mysql> create table DemoTable1545 (
    -> Id int,
    -> FirstName varchar(20)
    -> ); 
Query OK, 0 rows affected (1.65 sec)

mysql> insert into DemoTable1545 values(1,'John'); 
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1545 values(2,'Chris'); 
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1545 values(3,'Bob'); 
Query OK, 1 row affected (0.15 sec)

2. Dữ liệu ban đầu

mysql> select * from DemoTable1545;
+------+-----------+
| Id   | FirstName |
+------+-----------+
|    1 | John      |
|    2 | Chris     |
|    3 | Bob       |
+------+-----------+
3 rows in set (0.00 sec)

3. Cập nhật ID với CASE

mysql> update DemoTable1545
    -> set Id = case 
    ->     when FirstName like '%John%' then 101
    ->     when FirstName like '%Chris%' then 201
    ->     when FirstName like '%Bob%' then 501
    ->     else Id
    -> end; 
Query OK, 3 rows affected (0.18 sec)
Rows matched: 3 Changed: 3 Warnings: 0

4. Kết quả

mysql> select * from DemoTable1545;
+------+-----------+
| Id   | FirstName |
+------+-----------+
|  101 | John      |
|  201 | Chris     |
|  501 | Bob       |
+------+-----------+
3 rows in set (0.00 sec)

Ưu điểm: Chỉ cần một truy vấn UPDATE duy nhất thay vì nhiều câu lệnh riêng biệt. Phù hợp cho việc mapping dữ liệu hàng loạt.