2010-07-13 52 views
0

我有一个mySQL查询产生一个空集。例如,MySQL查询产生一个空集

SELECT id 
FROM `my_table` 
WHERE type = 'old' 
AND neighborhoods = 'Newport' 

产生一个空集。如果查询产生空集,可以将其返回:

id 
--- 
0 

谢谢。

-Laxmidi

回答

0

您可以在查询

SELECT id, COUNT(id) as Total 
FROM `my_table` 
WHERE type = 'old' 
AND neighborhoods = 'Newport' 

COUNT部分添加和将返回至少一个记录与Total=0

+0

我离开了id和COUNT()作为参数,因此您将得到“0”的结果或者您将获得记录集。 – jerebear 2010-07-13 02:47:56

+0

jerebear, 非常感谢!它效果很好。 – Laxmidi 2010-07-13 02:59:22

0

是,

SELECT COUNT(id) 
FROM `my_table` 
WHERE type = 'old' 
AND neighborhoods = 'Newport' 

将始终返回结果集。

0

如果您需要INCLUDE ID,那么您可以使用LEFT OUTER来完成此操作。

SELECT a.id, 
     IFNULL(b.cnt,0) as cnt 
FROM 
(
    SELECT distinct id, 'myjoin' as myjoin 
    FROM `my_table` 
    WHERE id = [what you are looking for] 
) a LEFT OUTER JOIN 
(
    SELECT COUNT(id) as cnt 
    FROM `my_table` 
    WHERE type = 'old' 
    AND neighborhoods = 'Newport' 
) b ON a.myjoin=b.myjoin 

第一个查询带回你想要的ID,然后在连接(LEFT OUTER),为固定值(在这种情况下,所谓的“myjoin”),如果后者查询回来空将带回0。