如何用数据库数据随机填充片段

How to randomly populate a fragment with database data

我有一个显示从数据库 (sqlite) 行获取的数据的片段。我现在想要实现的是从数据库中获取不同的行并在单击按钮时填充片段。如果可能的话,我希望随机选择该行。我希望我问的问题是对的。提前致谢

一种可能的方法是以随机顺序一次查询所有行并保持游标在附近。然后每次单击按钮时,只需前进光标位置并使用该数据。当您 运行 超出行时,您可以再次查询以获取另一个随机游标并重复。

我不确定你的查询代码是什么样的,但你想要的本质上是

SELECT [columns] FROM [table] ORDER BY random();

重要的部分是ORDER BY random()

请注意,此策略将不允许同一行数据出现第二次,除非您将整个游标耗尽一次。如果这不可接受,那么下一种可能性是每次单击按钮时进行查询并执行如下操作:

SELECT [columns] FROM [table] WHERE _id != [current_item_id] ORDER BY random() LIMIT 1;

无论您的主键列是什么(我的示例使用_id),使查询排除值与当前项相同的行。再次按 random() 排序并按 1 限制为 return 仅 1 行。