sqlite随机查询一组记录


方案一:

SELECT * FROM 表名 ORDER BY RANDOM() LIMIT 1

该方法需对所有记录进行一次排序,性能很差,1百万条记录时可能需几秒时间。


方案二:

SELECT * FROM 表名 WHERE rowid IN (一组随机的行ID)

该方法性能很好,rowid是sqlite表的一个隐藏字段。用程序获得一组行id,计算方法是在1到最大行id之间随机的获取,不过该方法有缺陷,因为rowid可能有空档,就是说,可能随机获取的行id没有对应的记录。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,671评论 18 399
  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,334评论 0 7
  • 我沿山谷向上走的时候 突然发现一只蚂蚁窜进了泥土的缝隙 一只蝴蝶努力摆脱了花朵的诱惑 一束艾草在风中倒向另一个方向...
    甘肃子溪阅读 226评论 2 2
  • 昨天《理财的事,说多了都是泪》,大家给了我很多反馈,感谢感谢。今天,早上一起来,就被英国脱欧公投刷屏了,今天的汇率...
    Kris在路上阅读 4,541评论 3 22
  • 今天中午,正在病床上输液的父亲和正坐在一旁发呆的我,一抬头,竟然发现父亲的--堂兄,只见伯父右手拎着一个白色的塑...
    翰墨飘香洛南人阅读 193评论 0 0

友情链接更多精彩内容