我意外地运行了以下查询并且它有效,现在即时通讯混淆为什么它的工作原理。有人可以解释如何解释这个查询...
{{1}}
我总是假设'顺序由'必须与显式选择子句相关联,但在这种情况下,它在()之外并且它起作用。这可能不是一个好的形式,但我只是想知道这是偶然的还是预期的?
谢谢!
答案 0 :(得分:2)
您只需将排序应用于子查询 请参阅手册中的更多内容:https://dev.mysql.com/doc/refman/5.5/en/select.html
如果ORDER BY出现在子查询中,并且也应用于外部 查询,最外面的ORDER BY优先。例如,结果 对于以下语句按降序排序,而不是 升序:
(SELECT ... ORDER BY a)由DESC订购;
答案 1 :(得分:0)
看起来这只是部分查询。
来自UNION Syntax:
要将ORDER BY或LIMIT应用于单个SELECT,请将该子句放在括起SELECT
的括号内。
以后的一段:
要使用ORDER BY或LIMIT子句对整个UNION结果进行排序或限制,请为各个SELECT语句加上括号,并将ORDER BY或LIMIT置于最后一个之后。