Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 顺序在ORDERBY子句中重要吗?_Mysql_Sql - Fatal编程技术网

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命令播放给定示例

样本数据差…样本数据差。。。