我有一个片段显示从数据库(sqlite)行获取的数据。我现在想要实现的是从数据库中拍摄不同的行,并在按钮点击时填充片段。如果可能的话,我希望随机挑选这一行。我希望我问这个问题吧。提前致谢
答案 0 :(得分:0)
一种可能的方法是使用随机顺序一次查询所有行并保持光标。然后每次单击该按钮,只需前进光标位置并使用该数据。当您用完行时,您可以再次查询以获取另一个随机游标并重复。
我不确定您的查询代码是什么样的,但您想要的基本上是
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,仅返回1行。