Mysql 顺序在ORDERBY子句中重要吗?
在Mysql 顺序在ORDERBY子句中重要吗?,mysql,sql,Mysql,Sql,在SQLORDER BY子句中,对于示例中这样的表 [ a - b - c - d ] -------------------------- [ x - 1 - i - e ] [ y - 2 - k - f ] [ z - 3 - m - g ] 如果我像下面这样写这个条款 ORDER BY a ASC, b DESC, c DESC, d ASC 如果我把列的顺序改成这样,有什么区别吗 ORDER BY d DESC
SQL
ORDER BY
子句中,对于示例中这样的表
[ a - b - c - d ]
--------------------------
[ x - 1 - i - e ]
[ y - 2 - k - f ]
[ z - 3 - m - g ]
如果我像下面这样写这个条款
ORDER BY a ASC, b DESC, c DESC, d ASC
如果我把列的顺序改成这样,有什么区别吗
ORDER BY d DESC, c DESC, b ASC, a ASC
或者它的工作原理是一样的,没有任何区别,因为它总是为
d DESC,c DESC,b ASC,a ASC
的列选择准确的顺序,这与a ASC,b DESC,c DESC,d ASC的顺序相同,但顺序不同?显示的列/表达式的顺序很重要。它按指定的第一个顺序进行排序,然后按下一个顺序进行排序,然后按下一个顺序进行排序。结果与颠倒列的顺序不同
将每个有序列视为前一个有序列的子顺序
(真的,你可以用比写问题所需的时间更短的时间来测试这个问题……列/表达式的显示顺序确实很重要。它按指定的第一个顺序进行排序,然后按下一个顺序进行排序,然后按下一个顺序进行排序。结果与颠倒列的顺序不同
将每个有序列视为前一个有序列的子顺序
(真的,你可以用比写问题所花的时间更短的时间来测试这一点…这两个问题非常非常不同
ASC
和DESC
应用于特定的键。这与钥匙的顺序无关
因此,第一个orderby
按列a
按升序排序。其余钥匙仅在有领带a
时使用
第二个orderby
按列d
降序排列。其余的键仅在d
中有连接时使用
当然,您可以找到两个版本相同的特定数据。但这是非常不寻常的。这两种情况非常非常不同
ASC
和DESC
应用于特定的键。这与钥匙的顺序无关
因此,第一个orderby
按列a
按升序排序。其余钥匙仅在有领带a
时使用
第二个orderby
按列d
降序排列。其余的键仅在d
中有连接时使用
当然,您可以找到两个版本相同的特定数据。但这是非常不寻常的。按ASC、b DESC、c DESC、d ASC的顺序排序
意味着
- 按升序排列的一阶a
- 然后按降序排列b
- 然后按降序排列c
- 最后按升序排列d
在您的示例中,这并不重要,因为值是相同的,但在下面的示例中,它感觉到
有序列表中的示例,如:
| a | b | c | d |
-----------------------
| 10 | 5 | 2 | 7 |
| 10 | 3 | 1 | 7 |
| 5 | 5 | 6 | 3 |
| 4 | 2 | 5 | 3 |
| 5 | 4 | 6 | 3 |
| 3 | 5 | 9 | 4 |
| 3 | 6 | 6 | 4 |
| 5 | 5 | 6 | 3 |
| 4 | 2 | 5 | 3 |
| 5 | 4 | 6 | 3 |
| 3 | 5 | 1 | 4 |
| 3 | 6 | 2 | 4 |
按d ASC、a ASC、b DESC、c DESC排序代码>
| a | b | c | d |
-----------------------
| 4 | 2 | 5 | 3 |
| 4 | 2 | 5 | 3 |
| 5 | 5 | 6 | 3 |
| 5 | 5 | 6 | 3 |
| 5 | 4 | 6 | 3 |
| 5 | 4 | 6 | 3 |
| 3 | 6 | 6 | 4 |
| 3 | 6 | 2 | 4 |
| 3 | 5 | 9 | 4 |
| 3 | 5 | 1 | 4 |
| 10 | 5 | 2 | 7 |
| 10 | 3 | 1 | 7 |
然后按after排序,按ASC、b DESC、c DESC、d ASC排序
| a | b | c | d |
--------------------
| 3 | 6 | 6 | 4 |
| 3 | 6 | 6 | 4 |
| 3 | 6 | 2 | 4 |
| 3 | 5 | 9 | 4 |
| 3 | 5 | 1 | 4 |
| 4 | 2 | 5 | 3 |
| 4 | 2 | 5 | 3 |
| 5 | 5 | 6 | 3 |
| 5 | 5 | 6 | 3 |
| 5 | 4 | 6 | 3 |
| 5 | 4 | 6 | 3 |
| 10 | 5 | 2 | 7 |
| 10 | 3 | 1 | 7 |
对于按d DESC、c DESC、b ASC、a ASC排序的,结果如下
| a | b | c | d |
| 10 | 5 | 2 | 7 |
| 10 | 3 | 1 | 7 |
| 3 | 5 | 9 | 4 |
| 3 | 6 | 6 | 4 |
| 3 | 6 | 2 | 4 |
| 3 | 5 | 1 | 4 |
| 5 | 4 | 6 | 3 |
| 5 | 4 | 6 | 3 |
| 5 | 5 | 6 | 3 |
| 5 | 5 | 6 | 3 |
| 4 | 2 | 5 | 3 |
| 4 | 2 | 5 | 3 |
请在此处使用order命令播放给定示例按ASC、b DESC、c DESC、d ASC排序
表示
- 按升序排列的一阶a
- 然后按降序排列b
- 然后按降序排列c
- 最后按升序排列d
在您的示例中,这并不重要,因为值是相同的,但在下面的示例中,它感觉到
有序列表中的示例,如:
| a | b | c | d |
-----------------------
| 10 | 5 | 2 | 7 |
| 10 | 3 | 1 | 7 |
| 5 | 5 | 6 | 3 |
| 4 | 2 | 5 | 3 |
| 5 | 4 | 6 | 3 |
| 3 | 5 | 9 | 4 |
| 3 | 6 | 6 | 4 |
| 5 | 5 | 6 | 3 |
| 4 | 2 | 5 | 3 |
| 5 | 4 | 6 | 3 |
| 3 | 5 | 1 | 4 |
| 3 | 6 | 2 | 4 |
按d ASC、a ASC、b DESC、c DESC排序代码>
| a | b | c | d |
-----------------------
| 4 | 2 | 5 | 3 |
| 4 | 2 | 5 | 3 |
| 5 | 5 | 6 | 3 |
| 5 | 5 | 6 | 3 |
| 5 | 4 | 6 | 3 |
| 5 | 4 | 6 | 3 |
| 3 | 6 | 6 | 4 |
| 3 | 6 | 2 | 4 |
| 3 | 5 | 9 | 4 |
| 3 | 5 | 1 | 4 |
| 10 | 5 | 2 | 7 |
| 10 | 3 | 1 | 7 |
然后按after排序,按ASC、b DESC、c DESC、d ASC排序
| a | b | c | d |
--------------------
| 3 | 6 | 6 | 4 |
| 3 | 6 | 6 | 4 |
| 3 | 6 | 2 | 4 |
| 3 | 5 | 9 | 4 |
| 3 | 5 | 1 | 4 |
| 4 | 2 | 5 | 3 |
| 4 | 2 | 5 | 3 |
| 5 | 5 | 6 | 3 |
| 5 | 5 | 6 | 3 |
| 5 | 4 | 6 | 3 |
| 5 | 4 | 6 | 3 |
| 10 | 5 | 2 | 7 |
| 10 | 3 | 1 | 7 |
对于按d DESC、c DESC、b ASC、a ASC排序的,结果如下
| a | b | c | d |
| 10 | 5 | 2 | 7 |
| 10 | 3 | 1 | 7 |
| 3 | 5 | 9 | 4 |
| 3 | 6 | 6 | 4 |
| 3 | 6 | 2 | 4 |
| 3 | 5 | 1 | 4 |
| 5 | 4 | 6 | 3 |
| 5 | 4 | 6 | 3 |
| 5 | 5 | 6 | 3 |
| 5 | 5 | 6 | 3 |
| 4 | 2 | 5 | 3 |
| 4 | 2 | 5 | 3 |
请在此处使用order命令播放给定示例样本数据差…样本数据差。。。