Để cập nhật các bản ghi dựa trên điều kiện cụ thể trong MySQL, chúng ta sử dụng câu lệnh CASE WHEN trong mệnh đề UPDATE. Cách tiếp cận này cho phép thay đổi giá trị khác nhau cho các hàng khác nhau tùy thuộc vào giá trị hiện tại của cột.
Ví dụ minh họa
Đầu tiên, tạo một bảng mẫu:
mysql> CREATE TABLE DemoTable1481 (
PlayerScore INT
);
Chèn một số dữ liệu mẫu:
mysql> INSERT INTO DemoTable1481 VALUES (454); mysql> INSERT INTO DemoTable1481 VALUES (765); mysql> INSERT INTO DemoTable1481 VALUES (890);
Xem dữ liệu ban đầu:
mysql> SELECT * FROM DemoTable1481;
+-------------+ | PlayerScore | +-------------+ | 454 | | 765 | | 890 | +-------------+
Cập nhật có điều kiện với CASE WHEN
Sử dụng câu lệnh UPDATE kết hợp CASE WHEN để thay đổi giá trị dựa trên điều kiện:
mysql> UPDATE DemoTable1481
SET PlayerScore = CASE
WHEN PlayerScore = 454 THEN 1256
WHEN PlayerScore = 765 THEN 1865
WHEN PlayerScore = 890 THEN 3990
END;
Kết quả sau khi cập nhật:
mysql> SELECT * FROM DemoTable1481;
+-------------+ | PlayerScore | +-------------+ | 1256 | | 1865 | | 3990 | +-------------+
Giải thích
- CASE WHEN: Kiểm tra từng điều kiện theo thứ tự.
- THEN: Giá trị mới gán cho cột khi điều kiện đúng.
- END: Kết thúc khối CASE.
Cách này rất hữu ích khi bạn cần cập nhật nhiều hàng với các giá trị khác nhau dựa trên giá trị hiện tại của chúng, tránh việc phải chạy nhiều câu lệnh UPDATE riêng biệt.