试图查看列中的内容后,我最终做了一些计数。
该表有3981行。
但是被计数的列在其空值和非空值的总数中仅显示低得多的数字。
怎么来的 ?
MariaDB [mydb]> select count(naf) from client where naf is not null;
+------------+
| count(naf) |
+------------+
| 83 |
+------------+
1 row in set (0.01 sec)
MariaDB [mydb]> select count(naf) from client where naf is null;
+------------+
| count(naf) |
+------------+
| 0 |
+------------+
1 row in set (0.01 sec)
MariaDB [mydb]> select count(*) from client;
+----------+
| count(*) |
+----------+
| 3981 |
+----------+
1 row in set (0.01 sec)
最佳答案
以下查询误导您:
select count(naf) from client where naf is null;
COUNT
函数将忽略所有NULL
值。因此,此查询将永远不会返回零以外的任何值。实际上,NULL
表中有3898个client
记录。要计算空值,可以尝试使用SUM
函数:SELECT SUM(1) FROM client WHERE naf IS NULL;
这应该返回3898。