sqlite随机查询一组记录


方案一:

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

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


方案二:

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

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

你可能感兴趣的:(sqlite随机查询一组记录)