我不知道为什么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。
答案 0 :(得分:1)
它返回该消息,因为没有记录匹配。 NULL是列的值。它与空回归集完全不同。
如果你有一个聚合函数,那么空集返回NULL。因此以下内容将返回NULL值:
select max(Page_ID)
这将返回0:
select count(Page_ID)