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

Đếm số cột boolean TRUE trên mỗi hàng trong MySQL

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