mysql - 为什么我的 SQL 查询会产生不同的顺序?
问题描述
我有一张这样的桌子:
Name Seats
101 60
102 40
202 100
201 20
任何数据都不能为空,因此房间的每个名称都将有一个归属的座位数。现在这是我的问题:
当我运行这个 SQL 查询时:
select name from rooms
我得到这个输出:
Name
101
102
201
202
当我运行这个 SQL 查询时:
select seats from rooms
我得到这个输出:
Name
60
40
100
20
请注意,在我的第一个查询select name from rooms
中,表中值的顺序发生了变化,而在我的第二个查询中,当我要找座位时,顺序保持不变。为什么会这样?
如何修复我的 SQL 查询,使其不会重新排序我的房间名称?
我希望它保持秩序并输出:
Name
101
102
202
201
解决方案
SQL 表表示无序集。SQL 结果集是无序的,除非有明确的ORDER BY
对应于最外层SELECT
。
时期。
如果您没有ORDER BY
,则您不应该对结果的排序有任何期望。排序可以从一次运行更改为另一次。
而且,即使您有ORDER BY
, 如果您有 tie(即具有相同值的键),那么它们可以从一个运行到下一个运行任意排序。
推荐阅读
- windows - 关于使用 SAMAccountName 语法的活动目录用户查找
- html - 如何使用 Angular 7 中的 post api 将表单数据发送到服务器
- android - Kotlin Coroutine Supervisor作业取消行为
- java - 将 Springboot 从 2.1.0 迁移到 2.2.1 时出现 Mongo 错误
- python - 让敌人射击玩家
- swift - 从前一个视图获取数据时,如何在同一类中分配相互使用的变量
- mercurial - 放弃 Mercurial 话题
- node.js - 通过 socket io 客户端连接到服务器
- javascript - JS - 每 5 秒显示一次 div,带有淡入淡出效果和关闭按钮
- php - 你会如何每 30 分钟循环一次