我的表格中有两列:
score DOUBLE NULL
score_bonus DOUBLE NULL
我有一行具有以下值:
score
= NULL
score_bonus
= 50
当我执行以下查询时,它不会返回上面的行:
SELECT * FROM table WHERE (score+score_bonus) > 0 LIMIT 1
我做错了什么?我的主要怀疑是NULL值,但我想这应该被MySQL考虑为零。
答案 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