我有以下存储过程
BEGIN
SELECT kids.*, SUM(point) as `point_sum`
FROM kids
LEFT JOIN tasks
ON kids.id = tasks.kid_id
WHERE kids.user_id = IN_user_id
GROUP BY kids.name;
END
这个语句工作正常。
我的问题:新用户的 SUM(point)
通常为 NULL,因为还没有提交的值需要求和。
我想要的是如果 SUM(point)
是 NULL
那么它应该返回类似 0
的值,否则它应该显示总和。我环顾四周,不确定如何解决它,有什么好主意吗?
最佳答案
您可以使用 coalesce
功能:
SELECT kids.*, COALESCE(SUM(point), 0) as `point_sum`
FROM kids
LEFT JOIN tasks
ON kids.id = tasks.kid_id
WHERE kids.user_id = IN_user_id
GROUP BY kids.name;
关于MySQL 将 NULL 替换为某个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27300298/