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

นับค่า NULL ใน MySQL

วิธีนับจำนวนค่า NULL ในคอลัมน์ MySQL

ใช้ CASE WHEN ... THEN 1 ELSE 0 END ร่วมกับ SUM() เนื่องจาก COUNT(column) ไม่นับ NULL

SELECT SUM(CASE WHEN yourColumn IS NULL THEN 1 ELSE 0 END) AS null_count FROM yourTable;

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูลผสม NULL และ Empty String:

mysql> create table DemoTable (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName varchar(20)
);
mysql> insert into DemoTable(FirstName) values('John');
mysql> insert into DemoTable(FirstName) values(NULL);
mysql> insert into DemoTable(FirstName) values('');
mysql> insert into DemoTable(FirstName) values('Larry');
mysql> insert into DemoTable(FirstName) values('');
mysql> insert into DemoTable(FirstName) values(NULL);
mysql> insert into DemoTable(FirstName) values(NULL);
mysql> insert into DemoTable(FirstName) values('Bob');

ข้อมูลทั้งหมด:

+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | John      |
| 2  | NULL      |
| 3  |           |
| 4  | Larry     |
| 5  |           |
| 6  | NULL      |
| 7  | NULL      |
| 8  | Bob       |
+----+-----------+

คิวรีนับเฉพาะค่า NULL:

mysql> select sum(case when FirstName IS NULL then 1 else 0 end) as NUMBER_OF_NULL_VALUE from DemoTable;
+----------------------+
| NUMBER_OF_NULL_VALUE |
+----------------------+
| 3                    |
+----------------------+

จุดสำคัญ: Empty String ('') ไม่ใช่ NULL | ใช้ IS NULL / IS NOT NULL ในการตรวจสอบ | COUNT(FirstName) จะให้นับแค่ 5 (ไม่นับ NULL) | COUNT(*) ให้นับทั้งหมด 8 แถว

นับ NULL และ Empty String พร้อมกัน:

SELECT SUM(CASE WHEN FirstName IS NULL OR FirstName = '' THEN 1 ELSE 0 END) FROM DemoTable;