试图查看列中的内容后,我最终做了一些计数。

该表有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。

07-26 04:09