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

Cập nhật hàng loạt (Mass Update) với CASE WHEN/THEN/ELSE trong MySQL?

Cú pháp cập nhật nhiều giá trị khác nhau cho cùng một cột dựa trên điều kiện:

UPDATE ten_bang
SET ten_cot = CASE
    WHEN ten_cot = gia_tri_1 THEN gia_tri_moi_1
    WHEN ten_cot = gia_tri_2 THEN gia_tri_moi_2
    WHEN ten_cot = gia_tri_3 THEN gia_tri_moi_3
    ELSE ten_cot
END;

Ví dụ: Thay đổi cột Id theo quy tắc cụ thể.

CREATE TABLE CaseUpdateDemo (Id INT, Name VARCHAR(100));
INSERT INTO CaseUpdateDemo VALUES (1,'John'), (2,'Carol'), (3,'Mike'), (4,'Bob');

Dữ liệu ban đầu:

+------+-------+
| Id   | Name  |
+------+-------+
|    1 | John  |
|    2 | Carol |
|    3 | Mike  |
|    4 | Bob   |
+------+-------+

Thực hiện cập nhật hàng loạt:

UPDATE CaseUpdateDemo
SET Id = CASE
    WHEN Id = 1 THEN 1001
    WHEN Id = 2 THEN 1002
    WHEN Id = 3 THEN 1003
    WHEN Id = 4 THEN 1004
    ELSE Id
END;

Kết quả

+------+-------+
| Id   | Name  |
+------+-------+
| 1001 | John  |
| 1002 | Carol |
| 1003 | Mike  |
| 1004 | Bob   |
+------+-------+

Ưu điểm: Chỉ cần một câu lệnh UPDATE thay vì nhiều câu lệnh riêng lẻ, tăng hiệu năng và đảm bảo tính nguyên tử (atomic).