MySQL将NULL替换为某个值

时间:2014-12-04 17:31:11

标签: mysql sql select null

我有以下存储过程

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之类的值,否则它应该显示总和。我环顾四周,不确定如何解决它,有什么好主意吗?

2 个答案:

答案 0 :(得分:1)

你真正需要的是IFNULL()

SELECT kids.*, IFNULL(SUM(point), 0) AS point_sum

NULL转换为提供的值,在本例中为0

答案 1 :(得分:1)

您可以使用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;