Hàm COUNT(column_name) chỉ đếm các hàng có giá trị khác NULL trong cột đó, trong khi COUNT(*) đếm tất cả hàng.
Tạo bảng và dữ liệu có NULL
mysql> CREATE TABLE DemoTable (
-> Name VARCHAR(100),
-> CountryName VARCHAR(100)
-> );
Query OK, 0 rows affected (0.49 sec)
mysql> INSERT INTO DemoTable VALUES('John', NULL);
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES('Chris', 'US');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES('Robert', NULL);
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable VALUES('Bob', 'UK');
Query OK, 1 row affected (0.57 sec)
Truy vấn đếm riêng cho từng cột
mysql> SELECT COUNT(Name) AS TotalName, COUNT(CountryName) AS CountryWhichIsNotNull FROM DemoTable;
Kết quả:
+-----------+-----------------------+ | TotalName | CountryWhichIsNotNull | +-----------+-----------------------+ | 4 | 2 | +-----------+-----------------------+ 1 row in set (0.00 sec)
Tóm tắt: COUNT(Name) = 4 (không có NULL), COUNT(CountryName) = 2 (có 2 giá trị NULL).