mysql order by子句在select语句之外

时间:2016-02-29 21:33:17

标签: mysql sql

我意外地运行了以下查询并且它有效,现在即时通讯混淆为什么它的工作原理。有人可以解释如何解释这个查询...

{{1}}

我总是假设'顺序由'必须与显式选择子句相关联,但在这种情况下,它在()之外并且它起作用。这可能不是一个好的形式,但我只是想知道这是偶然的还是预期的?

谢谢!

2 个答案:

答案 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置于最后一个之后。