我想知道一个涉及操作符DISTINCT、ORDER BY和LIMIT的SQL查询应该期望什么。我想我的问题根源于对使用SQL运算符的顺序的误解。
例如,
CREATE TABLE test(id int)
SELECT DISTINCT id
FROM test
ORDER BY id
LIMIT 10根据我对SQL的了解,我看不出下列哪一种(如果有的话)应该发生
test的前10行进行排序,然后返回该子集中不同的id的列表(id的列表进行排序,然后返回前10行中的D13D13的列表,然后排序H 215G 216如果有关系,我使用的是MySQL (MyISAM)
发布于 2011-11-12 03:30:24
先选择,然后按顺序,然后限制。这是真的,除了一些数据库(嗯,我知道一个),有顶部和限制关键字。在该引擎中,限制是WHERE子句的一部分(在SELECT级别上进行评估),并在ORDERing之后应用TOP。
发布于 2011-11-12 03:25:42
可以从“内到外”的角度来考虑,因此会发生以下情况:
https://stackoverflow.com/questions/8102308
复制相似问题