例如,如果我更改了任何记录的值,它将再次更新,但随后会被推回到最后一个位置,就像删除和添加另一条记录一样。
发布于 2020-12-30 00:24:12
如果没有ORDER BY子句,将以对数据库引擎最方便的任何顺序返回行。
在一个简单的SELECT中,行通常会按照它们存储在磁盘上的顺序返回,如果表被更新、真空、集群或备份和恢复,这种顺序可以在任何时候改变,但是...
如果您选择的列允许数据库执行仅索引扫描,则将以与使用表扫描时不同的顺序返回行。
如果它决定执行索引扫描,它可能会按索引顺序返回行,但如果它执行位图索引扫描或序列扫描,它可能会在磁盘上按表顺序返回。
如果您的SELECT使用联接,那么它将首先扫描其中一个表,这将影响返回行的顺序。
如果它决定使用散列连接、合并连接或其他类型的连接,那么行顺序也会改变。
忘记表格是集合,而select结果也是集合,而集合是无序的,这是初学者常见的错误。如果您的代码依赖于无序对象的顺序,那么它将无法工作。
如果你想要一个特定的订单,那么你必须使用order BY。
https://stackoverflow.com/questions/65493063
复制相似问题