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

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

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

  1. select a,b from d:
  2. +------+------+
  3. | a | b |
  4. +------+------+
  5. | 1 | 3 |
  6. | 1 | 3 |
  7. | 2 | 1 |
  8. | 2 | 1 |
  9. | 3 | 2 |
  10. | 3 | 2 |
  11. | 3 | 2 |
  12. +------+------+
  13. select a,b from d order by a,b;
  14. +------+------+
  15. | a | b |
  16. +------+------+
  17. | 1 | 3 |
  18. | 1 | 3 |
  19. | 2 | 1 |
  20. | 2 | 1 |
  21. | 3 | 2 |
  22. | 3 | 2 |
  23. | 3 | 2 |
  24. +------+------+
lokaqttq

lokaqttq1#

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

  1. Table Test
  2. A| B
  3. --------
  4. 1 1
  5. 1 3
  6. 1 2
  7. Select * from test order by A, B
  8. Output
  9. A | B
  10. 1 1
  11. 1 2
  12. 1 3

希望这能消除你的疑虑。

展开查看全部
qpgpyjmq

qpgpyjmq2#

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

相关问题