某一列中存在NULL值时存在的问题

count数据丢失

如果某列存在NULL值时,count(常量)会丢失为null的数据(使用count或者count id)
*注:不能使用count(常量)

distinct数据丢失

当使用count(distinct col1,col2)查询时,如果其中一列为null,那么即使另一列有不同的值,查询结果也会将数据丢失

select数据丢失

某列存在null值时,执行等于或非等于符号(=、!=)不能查询到null的结果
注:匹配null值要用is NULL 或 is not NULL、IFNULL(cloumn)、ISNULL(cloumn)进行查询

导致空指针异常

某列存在null值时,可能会导致 sum(col) 的结果为null而不是0,这样的查询结果会导致程序执行抛空指针异常
可以通过 IFNULL 判断避免空指针(例:select ifnull(sum(age),0) from user