MySQL中为什么要在count中添加or null?
- 当用于统计某一个字段出现的次数时,如果在限制条件中不加上or null ,我们就不能得到正确的值。
- 现在有一个数据库表叫express,我们要查询其中字段status为0的数量
select count(status = 0) from express;
- 这时的结果按理来说应该是3,可实际却是4.
也就是说我们此时把数据status=1的数据也加进来了。 - 这时候若是在条件后面加入or null,则统计的结果为正确值。
因为当使用count统计时,先统计了status=0的条件,判断条件值为false,或者true,都可以对该数据进行统计。
但是,加上or null后,条件先判断status=0为false后,继续执行or条件后的语句,满足了null为true的条件后,因为count不能对值为null的数据进行统计,也就不能把该数据加入进去。