mysql:如何在不重新排序的情况下在LEFT JOIN之后保存ORDER BY?

mysql:如何在不重新排序的情况下在LEFT JOIN之后保存ORDER BY?,第1张

mysql:如何在不重新排序的情况下在LEFT JOIN之后保存ORDER BY?

(说明损失

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
-一个在派生表中,一个在最后。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5675476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存