Trong MySQL, giá trị boolean TRUE = 1, FALSE = 0. Do đó, cộng các cột boolean lại cho biết số cột TRUE trên mỗi hàng.
Ví dụ minh họa
Tạo bảng 4 cột boolean:
mysql> CREATE TABLE DemoTable (
IsMarried BOOLEAN,
IsActive BOOLEAN,
IsMember BOOLEAN,
IsOn BOOLEAN
);
Chèn dữ liệu:
mysql> INSERT INTO DemoTable VALUES(TRUE, FALSE, TRUE, FALSE); mysql> INSERT INTO DemoTable VALUES(FALSE, FALSE, FALSE, FALSE); mysql> INSERT INTO DemoTable VALUES(TRUE, TRUE, TRUE, TRUE); mysql> INSERT INTO DemoTable VALUES(TRUE, FALSE, FALSE, TRUE);
Xem dữ liệu (hiển thị 1/0):
mysql> SELECT * FROM DemoTable;
Kết quả
+-----------+----------+-----------+------+ | IsMarried | IsActive | IsMember | IsOn | +-----------+----------+-----------+------+ | 1 | 0 | 1 | 0 | | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | | 1 | 0 | 0 | 1 | +-----------+----------+-----------+------+
Lấy các hàng có từ 3 cột TRUE trở lên (tổng ≥ 3):
mysql> SELECT * FROM DemoTable
-> WHERE IsMarried + IsActive + IsMember + IsOn >= 3;
Kết quả
+-----------+----------+-----------+------+ | IsMarried | IsActive | IsMember | IsOn | +-----------+----------+-----------+------+ | 1 | 1 | 1 | 1 | +-----------+----------+-----------+------+
Lưu ý: Cách này chỉ đúng khi cột không chứa NULL. Nếu có NULL, hãy dùng COALESCE(cot, 0) hoặc IF(cot, 1, 0).