如果MySql查询为空,则返回默认值

时间:2018-04-25 18:38:19

标签: mysql

如果mysql查询没有返回结果,我怎么能返回零(0)或任何其他默认值?到目前为止,我尝试使用此查询无效:我没有回复任何东西!?

SELECT IF( g.value IS NULL, 0,value ) AS goal FROM globals AS g WHERE g.expire_date >= '2018-04-25' ORDER BY g.id DESC

1 个答案:

答案 0 :(得分:0)

您可以尝试使用虚拟行进行LEFT JOIN以确保至少返回一行,然后使用@nacho的建议在没有匹配时使用NULLIF给出0。

e.g。

SELECT IFNULL(g.`value`, 0) AS goal
FROM (SELECT 1) AS dummy   
LEFT JOIN `globals` AS g
ON g.`expire_date` >= '2018-04-25';