Mysql 即使使用,也不存在任何结果
我不明白为什么MySQL返回MySQL不生成记录,而我使用的是EXISTS,我愿意选择一个不生成记录的子查询:Mysql 即使使用,也不存在任何结果,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,我不明白为什么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:5
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。因此,以下内容将返回空值:
select max(Page_ID)
这将返回0:
select count(Page_ID)
子查询返回什么?我很乐意选择一个不生成记录的子查询。EXISTSaaa生成一个布尔值,在您的例子中为False。您可以在存在的地方替换。。。其中1=0,得到相同的结果。顺便说一句:子查询与主查询不相关。这是您的意图吗?好的,如果我的最终目的是对page\u iD的值进行测试,如选择如果page\u iD>10,1,'0。。如果存在..,我总是被迫使用MAX:SELECT如果MAXpage_ID>10,1,'0。。哪里有?是的,还是数一数。或者,您可以使用非常复杂的查询,但聚合是最简单的方法。