sql语句中count(0)和count(1)的区别

2024-10-28 20:44:38

一、意思不同

count(1)会统计包括null值的所有符合条件的字段的条数。count(0)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入),distinct 列名,得到的结果将是除去值为null和重复数据后的结果 。

二、作用不同

主要还是要count(1)所相对应的数据字段。

如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。 因为count(*),自动会优化指定到那一个字段。所以没必要去count(?),用count(*),sql会帮你完成优化的 。

sql语句中count(0)和count(1)的区别

三、使用结果不同

当abc为空的时候,第二种不算入count中,而第一种是无条件的都算入count中,比例一列数据

字段名叫abc

A

B

NULL

这样的话,第一种查询是3条,而第二种查询的结果是2条。

猜你喜欢