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).