ORDER BY究竟是如何工作的?

时间:2016-06-19 13:54:38

标签: mysql sql

我有这个问题:

. . . ORDER BY col1 desc, col2, col3 desc

应该注意col2是唯一的。所以我想知道写作col3 desc是无用的,有时它可能有用吗?

一般来说,我想知道我可以删除在ORDER BY子句上的唯一列之后写的每个列名吗?

1 个答案:

答案 0 :(得分:1)

按顺序工作从左到右(与其他表达式一样)所以,是的,如果列是唯一的,那么顺序中的后续列将是多余的。 就个人而言,我希望任何值得盐的SQL引擎都能优化冗余列。

编辑..

正如Frederick在评论中所提到的 - 有可能在一个排序规则中保留唯一的文本列,然后在另一个排序规则中选择和排序,可能会在该列上创建重复项。在这种情况下, order by 可能不像我上面所描述的那样,但是你的脚本很可能会有整理提示,所以你应该知道风险。