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

Đảo ngược giá trị boolean (0/1) trong MySQL bằng một truy vấn

Dùng hàm IF() hoặc CASE trong lệnh UPDATE để lật giá trị boolean (MySQL lưu boolean dưới dạng TINYINT(1): 1 = true, 0 = false).

Cú pháp

UPDATE ten_bang 
SET cot_boolean = IF(cot_boolean, 0, 1);

Hoặc dùng CASE:

UPDATE ten_bang 
SET cot_boolean = CASE WHEN cot_boolean THEN 0 ELSE 1 END;

Ví dụ minh họa

Tạo bảng ReverseBooleanField:

CREATE TABLE ReverseBooleanField (
    Id INT NOT NULL AUTO_INCREMENT,
    isValid BOOLEAN,
    PRIMARY KEY (Id)
);

INSERT INTO ReverseBooleanField (isValid) VALUES
(true), (false), (true), (true), (false);

Dữ liệu gốc (MySQL hiển thị 1/0):

+----+---------+
| Id | isValid |
+----+---------+
|  1 |       1 |
|  2 |       0 |
|  3 |       1 |
|  4 |       1 |
|  5 |       0 |
+----+---------+

Truy vấn đảo ngược

UPDATE ReverseBooleanField 
SET isValid = IF(isValid, 0, 1);

Kết quả sau cập nhật:

+----+---------+
| Id | isValid |
+----+---------+
|  1 |       0 |
|  2 |       1 |
|  3 |       0 |
|  4 |       0 |
|  5 |       1 |
+----+---------+

Lưu ý: Câu lệnh cập nhật toàn bộ bảng. Thêm WHERE nếu chỉ muốn đảo một phần.