sqlite随机查询一组记录

方案一:

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

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

方案二:

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

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

    原文作者:其时
    原文地址: https://www.jianshu.com/p/edc1ac737df9
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞