为什么第2列没有从1到3排序?

hmtdttj4  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(290)

为什么第2栏的顺序不对。有人能解释一下吗。

select a,b from d:

+------+------+    
| a    | b    |    
+------+------+    
|    1 |    3 |    
|    1 |    3 |    
|    2 |    1 |    
|    2 |    1 |    
|    3 |    2 |    
|    3 |    2 |    
|    3 |    2 |    
+------+------+

select a,b from d order by a,b;

+------+------+    
| a    | b    |    
+------+------+    
|    1 |    3 |    
|    1 |    3 |    
|    2 |    1 |    
|    2 |    1 |    
|    3 |    2 |    
|    3 |    2 |    
|    3 |    2 |    
+------+------+
lokaqttq

lokaqttq1#

我认为它的顺序是正确的。在您的order by中,您要求系统首先按第一列排序,这样它就排序了,然后您要求它按第二列排序,这样它就有了1。它必须保持第一列的顺序。2也按第二列排序
所以在组内排序意味着如果。。

Table Test 
 A| B
 --------
  1  1
  1  3
  1  2

Select * from test order by A, B 
Output 
A | B 
 1  1 
 1  2
 1  3

希望这能消除你的疑虑。

qpgpyjmq

qpgpyjmq2#

输出中的每个记录/行必须一致。使用“排序方式”时,打印的是根据特定列值排序的记录/行。不能通过破坏行的一致性来对单个列进行排序。否则会造成大破坏,想象一下 'select bank_account_id, balance from bank_record order by bank_account_id, balance;' . 如果银行账户id和余额分别排序,您认为会发生什么?

相关问题