前情提示:今天一个mysql 的统计函数老报错,提示:

attempted to return null from a method with a primitive return type (int).

这个问题一看就是统计给返回null 了 ,而我想要的是int ,这个发生在sum函数上 经常会遇到 ,一般是查询结果为空时进行sum统计条数会返回结果 null,今天贴出解决方案 ,防止以后忘了,处理这个问题 ,mysql给出了三个解决方案:

1.使用 IFNULL(expr1,expr2)函数
2. 使用COALESCE(value,…) 函数
3.使用 case when 函数进行判断

接下来分别说一说这几个函数的用法

首先,创建一张空白的表 name 表 ,数据为空
Mysql 统计函数SUM 查询结果为空【null】
1、使用sum(name) 查询统计name数量,可以看到结果为null
Mysql 统计函数SUM 查询结果为空【null】
2、 使用 IFNULL(expr1,expr2)函数进行查询,判断第一个参数是否为null,如果是 则返回结果为 第二个参数(数值自定义)
Mysql 统计函数SUM 查询结果为空【null】Mysql 统计函数SUM 查询结果为空【null】
3、 使用COALESCE(value,…) 函数,结果和IFNULL 函数一样
Mysql 统计函数SUM 查询结果为空【null】Mysql 统计函数SUM 查询结果为空【null】
4、使用 case when 函数进行判断,条件自定义 ,结果也可以自定义
Mysql 统计函数SUM 查询结果为空【null】

结束 :这几个基本就够用了 ,如果哪位道友还知道些别的,就在底下回复我

相关文章: