我不理解为什么MySQL返回“ MySQL没有产生记录”,而我使用EXISTS(我愿意选择一个不产生记录的子查询):

SELECT  page_ID
    FROM ranks_update
    WHERE EXISTS (
    SELECT *
    FROM ranks_update
    WHERE ranking_ID = 3
        AND current_rank = 1
        AND rating_time < '2012-08-05 02:57:59'
        AND rating_time >= '2012-08-05 00:00:00'
    GROUP BY page_ID
);


根据定义,EXISTS允许从不返回任何记录的查询中获取结果。到现在为止,在这种情况下,我总是得到NULL。

最佳答案

由于没有记录匹配,因此返回该消息。 NULL是列的值。它与空返回集完全不同。

如果具有聚合函数,则空集将返回NULL。因此,以下代码将返回NULL值:

select max(Page_ID)


这将返回0:

select count(Page_ID)

关于mysql - 即使使用EXISTS也没有结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11818093/

10-14 23:19
查看更多