SQLite:如何同时实现RANDOM ORDER和pag​​eintation?

时间:2017-05-27 11:13:47

标签: sql sqlite random

我有一张电影表,我希望能够查询数据库并获得一个随机的电影列表,但我也不希望它返回所有电影,所以我' m使用LIMITOFFSET。问题是当我做这样的事情时:

SELECT *  FROM Movie ORDER BY RANDOM() LIMIT 50 OFFSET 0

然后在使用LIMIT 50 OFFSET 50查询下一页时,RANDOM种子会发生变化,因此第一页中的行可能会包含在第二页中,这不是所需的行为。

如何实现随机订单并通过页面保留?据我所知,SQLite不支持自定义种子的RANDOM功能。

谢谢!

1 个答案:

答案 0 :(得分:0)

您无法保留随机值。您必须在表中添加另一个字段名称以保持随机顺序

UPDATE movie
SET randomOrder = Random();

然后你可以检索页面

SELECT *  
FROM Movie 
ORDER BY randomOrder 
LIMIT 50 OFFSET 0