MySQL lưu BOOLEAN là TINYINT(1): TRUE = 1, FALSE = 0. Cập nhật bằng literal TRUE/FALSE hoặc 1/0.
Cú pháp
UPDATE ten_bang SET cot_boolean = TRUE WHERE dieu_kien;
-- hoặc
UPDATE ten_bang SET cot_boolean = 1 WHERE dieu_kien;
Ví dụ minh họa
Tạo bảng UpdateBooleans:
CREATE TABLE UpdateBooleans (
Id INT NOT NULL AUTO_INCREMENT,
isSuccessful BOOLEAN, PRIMARY KEY (Id)
);
INSERT INTO UpdateBooleans (isSuccessful) VALUES
(true), (false), (true), (false), (false), (false), (true);
Dữ liệu gốc (hiển thị 1/0):
+----+--------------+
| Id | isSuccessful |
+----+--------------+
| 1 | 1 |
| 2 | 0 |
| 3 | 1 |
| 4 | 0 |
| 5 | 0 |
| 6 | 0 |
| 7 | 1 |
+----+--------------+
Cập nhật: Đặt tất cả FALSE → TRUE
UPDATE UpdateBooleans SET isSuccessful = TRUE WHERE isSuccessful = FALSE;
Kết quả: 4 hàng thay đổi, tất cả thành 1.
+----+--------------+
| Id | isSuccessful |
+----+--------------+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
| 6 | 1 |
| 7 | 1 |
+----+--------------+
Mẹo: Đảo ngược toàn bộ cột: UPDATE ten_bang SET cot_boolean = NOT cot_boolean; (MySQL hiểu NOT 1 = 0, NOT 0 = 1).