如果WHERE子句中的邻居不存在,如何使我的mysql数据库返回0?因此,在下面的示例中,旧城区不在数据库中。我希望数据库返回0个事件,而不是一个空结果。

SELECT incidents,
       neighborhoods
 FROM `myTable`
WHERE neighborhoods ='Old Town'

我也试过了
SELECT IFNULL(incidents,0),
       IFNULL(neighborhoods,0)
  FROM `myTable`
 WHERE neighborhoods ='Old Town'

任何建议将不胜感激。

最佳答案

我对您的问题的看法是构造一个希望找到的neighborhoods值的派生表,并将LEFT JOIN映射到实际表:

   SELECT x.neighborhoods,
          COALESCE(mt.incidents, 0) AS incidents
     FROM (SELECT 'Old Town' AS neighborhoods
             FROM DUAL
           UNION ALL
           SELECT 'New Town'
             FROM DUAL) x
LEFT JOIN MYTABLE mt ON mt.neighborhoods = x.neighborhoods

关于mysql - 当Where子句中的术语不在数据库中时,如何从MySQL数据库返回0?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2394307/

10-11 22:37
查看更多