(说明损失
ORDER BY)
SQL标准从本质上说,子查询是无序的行集。这意味着优化器可以随意忽略
ORDER BY“派生”表中的
FROM ( SELECT ... ORDER BY)。在MySQL和MariaDB的“最新”版本中,此类
ORDER BYs已被删除。还有其他情况
ORDER BY被忽略。
在 某些 情况下(不确定这一点),在优化程序欺骗
LIMIT 99999999后添加一个(大数字)。但是,以后仍然可以随意忽略“顺序”。
ORDERBY``ORDER BY
MySQL的一般规则:避免子查询。(在某些情况下,子查询速度更快,但不是您的。)
一个强大的规则:你 必须 有一个
ORDER BY,如果你想要的结果进行排序的最外层。
如果您
LIMIT 3在第一个查询中已将其添加到派生表中,则只会得到CHARLES,DAVID,JAMES, 但不一定按该顺序
。也就是说,您将需要两个
ORDER BYs-一个在派生表中,一个在最后。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)