最近在学习SQL,阅读 “MICK-SQL基础教程” 一书的时候遇到一个问题,关于查询结果随机的问题?

MICK-SQL基础教程 (中译版本)的书中,在 3-4 章节中,讲到 order by 的时候,说查询结果是随机的?不知道是翻译错误,还是确实是随机的?

目前只执行SQL的过程中,每次结果都是一致的,没发现有随机的情况?

阅读 1.6k
2 个回答

你好,虽然没读过这本书及你使用的数据库,但大概能猜出你的疑惑点在哪。
首先,书中的内容应该是正确的,因为大部分数据库关于order by的设计都是随机的。
即当order by的字段内容相同的几条的数据顺序性是随机的。没有去深入研究过这是为什么,可能是采取了一种不稳定的排序算法,也可能跟底层磁盘检索原理有关。
至于为什么你每次结果都一致,很有可能是该数据库支持缓存,当你的sql不发生改变以及数据库内容不变更时,那么查询结果就会从缓存中去取,从而导致你每次的查询结果都是一致的。
不过这只是我的猜测,你可以更改数据库内容,多测试几次试试看。但问题的答案是一定的,即是随机的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题