如果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
答案 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';