选择其中的行('score'+'score_bonus')> 0,但其中一个值可能为NULL

时间:2014-09-10 09:26:07

标签: mysql sum

我的表格中有两列:

score DOUBLE NULL
score_bonus DOUBLE NULL

我有一行具有以下值:

score = NULL score_bonus = 50

当我执行以下查询时,它不会返回上面的行:

 SELECT * FROM table WHERE (score+score_bonus) > 0 LIMIT 1

我做错了什么?我的主要怀疑是NULL值,但我想这应该被MySQL考虑为零。

1 个答案:

答案 0 :(得分:1)

您需要避免使用null

5 + null = null
SELECT * FROM your_table 
WHERE coalesce(score,0) + coalesce(score_bonus,0) > 0 
LIMIT 1

或者如果您只有正值,则可以使用

SELECT * FROM your_table 
WHERE greatest(score,score_bonus) > 0 
LIMIT 1