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

Đếm số cột NULL hoặc rỗng trong bảng MySQL

Dùng CASE WHEN trong SUM() để đếm riêng NULL và chuỗi rỗng, kết hợp UNION ALL.

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable781(Name VARCHAR(100)); 
Query OK, 0 rows affected (0.66 sec)

mysql> INSERT INTO DemoTable781 VALUES(''), ('Chris'), (''), (NULL), (NULL), (''), (NULL); 
Query OK, 7 rows affected

Truy vấn đếm NULL và rỗng

mysql> 
(SELECT SUM(CASE WHEN Name IS NULL THEN 1 ELSE 0 END) AS NullCountAndEmptyCount FROM DemoTable781)
UNION ALL
(SELECT SUM(CASE WHEN Name = '' THEN 1 ELSE 0 END) AS NullCountAndEmptyCount FROM DemoTable781);

Kết quả:

+------------------------+
| NullCountAndEmptyCount |
+------------------------+
| 3                      |
| 3                      |
+------------------------+

Cách gọn hơn (MySQL 8.0+):

SELECT 
    SUM(Name IS NULL) AS NullCount,
    SUM(Name = '') AS EmptyCount
FROM DemoTable781;

Kết quả trả về 1 hàng với 2 cột: NullCount=3, EmptyCount=3.