亲宝软件园·资讯

展开

Mysql用sum()返回null

IT范儿 人气:0

介绍

SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下:

SUM(DISTINCT expression)

SUM()函数是如何工作的?

问题

在项目中使用 Mysql 中的 sum() 函数求和时,调试时发现报出下面的错误信息:

sql: Scan error on column index 0, name "total": converting NULL to int64 is unsupported

我相应执行的sql语句如下:

SELECT SUM(consume) as total FROM task_income WHERE consume_type=3 AND uid=20;

验证

为了找到原因,我在 Navicat 中执行了一遍出问题的sql和参数,发现结果中确实是返回了 null :

按我之前开发时的想法:

结果,当没有符合条件的数据时却返回了 null 。

解决

可以通过结合使用 ISNULL 或 COALESCE 函数来解决。

相应的示例如下:

SELECT IFNULL(SUM(Column1), 0) AS total FROM...

SELECT COALESCE(SUM(Column1), 0) AS total FROM...

区别

上面说道,使用 ISNULL 或 COALESCE 函数都可以解决为 null 的问题,那么这两个函数有什么区别呢?

参考

总结

加载全部内容

相关教程
猜你喜欢
用户评论