MySQL 将 NULL 替换为某个值

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

最佳答案

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

相关文章:

mysql查看表性能

sql - 发生 "CASE ELSE"时从 SQL 中删除行

MySql - 连接 - 连接同一个表两次

mysql - 从 MySQL 中的文本字段中选择仅数字模式

javascript - 将选择选项和 optgroup 存储在 JavaScript 数组中

mysql - 如何从 .ibd 文件重新创建 MySQL InnoDB 表?

javascript - PHP 更改按钮文本并相应更新数据库

php - 将数组插入数据库

Mysql:使用 INSERT SELECT 中的自动递增 ID 进行后续 INSERT

Mysql 给我不相关的结果