null值是不会算在count以内的

Posted 专注互联网系统开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了null值是不会算在count以内的相关的知识,希望对你有一定的参考价值。

 

 

 

做统计的时候,null是不计算在count以内的。所以字段的值最好不要设置为null。

 


比如:select count(user_id) as beyond_num from fs_users_added where credits<410 && user_id!=75语句,就统计不到null的数据行。

我需要统计出多少个用户的学分比这个低。计算排名。结果由于credits值有null的情况,造成了数据统计不准确。明明是90个用户超过,结果算出来是54个用户。



解决办法是:创建字段的时候,设置为not null。或者一个默认值0



如果允许为null,没有插入值的情况下,默认被mysql给字段一个默认值是null,此时即便是后续使用如下语句修改掉字段的默认值:


ALTER TABLE `table_name`
MODIFY COLUMN `credits`  float(10,2) UNSIGNED NULL DEFAULT 0 COMMENT ‘用户学分‘ AFTER `user_id`;


原来存储进去的null值也不会改变。于是造成了麻烦。



此时的解决办法是:使用如下语句,对值为null的行都设置成一个默认值0

update table_name set credits=0 where credits is null



以上是关于null值是不会算在count以内的的主要内容,如果未能解决你的问题,请参考以下文章

hive对有null值的列进行avg,sum,count等操作时会不会过滤null值

mysql数据库里面的NULL属性是啥意思?

count(*) count

count的一些用法

参数 'pageController' 的值不能为 'null',因为它的类型,但隐含的默认值是 'null'

PHP之null