Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

นับแถวที่มีคอลัมน์ Boolean เป็น TRUE มากกว่า 3 คอลัมน์ใน MySQL

บทนำ

ใน MySQL ค่า Boolean TRUE เทียบเท่ากับ 1 และ FALSE เทียบเท่ากับ 0 ดังนั้นสามารถบวกคอลัมน์ Boolean เข้าด้วยกันเพื่อนับจำนวน TRUE ได้โดยตรง

ตัวอย่างการสร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    -> IsMarried BOOLEAN,
    -> IsActive BOOLEAN,
    -> IsMember BOOLEAN,
    -> IsOn BOOLEAN
    -> );
Query OK, 0 rows affected (0.61 sec)
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);

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+-----------+----------+-----------+------+
| IsMarried | IsActive | IsMember | IsOn |
+-----------+----------+-----------+------+
| 1         | 0        | 1         | 0    |
| 0         | 0        | 0         | 0    |
| 1         | 1        | 1         | 1    |
| 1         | 0        | 0         | 1    |
+-----------+----------+-----------+------+
4 rows in set (0.00 sec)

คำสั่งนับแถวที่มี TRUE มากกว่าหรือเท่ากับ 3 คอลัมน์

mysql> SELECT * FROM DemoTable
    -> WHERE IsMarried + IsActive + IsMember + IsOn >= 3;

ผลลัพธ์

+-----------+----------+-----------+------+
| IsMarried | IsActive | IsMember | IsOn |
+-----------+----------+-----------+------+
| 1         | 1        | 1         | 1    |
+-----------+----------+-----------+------+
1 row in set (0.00 sec)

คำอธิบาย

  • แถวที่ 1: มี TRUE 2 คอลัมน์ (ไม่ผ่าน)
  • แถวที่ 2: ไม่มี TRUE (ไม่ผ่าน)
  • แถวที่ 3: มี TRUE 4 คอลัมน์ (ผ่าน)
  • แถวที่ 4: มี TRUE 2 คอลัมน์ (ไม่ผ่าน)