1、count(*) 查询的是数据表中的所有记录,不论字段是否为NULL,都计算在内;
2、 count(列名) 查询的是数据表中所有不为NULL的记录,不包括字段中为NULL的数据;
3、count(任意数) 查询的是数据表中所有记录,不论字段中是否为NULL,都计算在内;
4、count(布尔值) 查询的是数据表中所有记录,不论字段中是否为NULL,都计算在内,
所以当在括号内写入判断条件时,其实是查询了包含NULL在内的记录,如果要
得到正确的结果就需要排除字段值为NULL的记录。(可以利用短路判断or语句)。
实例:
-- 这条语句相当于在count参数列表中写入true 或者false,查询的是所有记录
SELECT COUNT(sal>2500) cnt FROM emp;
-- 写入sal> 2500 or null 是个短路判断,能得出正确结果
SELECT COUNT(sal>2500 or NULL) cnt FROM emp;