我有一个表,其自然顺序是主键id
,所以当我这样做时
SELECT * from table
我的结果按id
,升序排序。但是,我会不时地在表上运行查询,而没有ORDER BY
子句,结果将按id
降序的顺序返回。为什么会这样?是什么导致这个,或者我错过了关于SQL如何工作的哪些信息?当没有使用ORDER BY
子句时,什么会决定结果的排序顺序?也没有JOIN
或GROUP BY
发生。
该表的维护方式使得任何结果的所需顺序为id
顺序升序,因此永远不必运行耗时ORDER BY
。
感谢阅读!
答案 0 :(得分:0)
如果没有订单,则不会定义结果的排序。它以一种不可预测的方式以最佳方式返回给您的数据库系统。因此,您的 ID 将以降序递送,这纯属巧合。可以通过重建索引或在表中插入/删除数据来更改排序。