我不理解为什么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/