如何在android中对sqlite的数据库表的id进行洗牌。并使用表格的相应混洗id显示或检索数据。
例如:在程序员表中: id :1,2,3和级别:分别为实习生,大三和大四。
我的目的是将这些身份证改成各自的水平。如果首先使用junior加载id 2,那么如果我单击下一步,则可能显示1或3具有接受级别,依此类推。
我是android的新手。提前谢谢。
答案 0 :(得分:2)
在sqllite中没有直接的方法来改组数据,但你可以通过以下方式实现这一点:
我希望它可以帮到你。
答案 1 :(得分:1)
Ajay的解决方案非常有效。
从观察开始我们可以根据集合检索表的id(例如,计数5):
select *
from table_name
where _id in (4, 1, 2, 5, 3)
我们可以得出结果,如果我们可以生成字符串“(4,1,2,5,3)”,那么我们将比RAND()更有效。
例如,在Java中:
ArrayList<Integer> indices = new ArrayList<Integer>(rowsCount);
for (int i = 0; i < rowsCount; i++) {
indices.add(i);
}
Collections.shuffle(indices, new Random());
String inClause = indices.toString();
inClause = inClause.replace('[', '(').replace(']', ')');
如果id有间隙,那么最初的arraylist“indices”是对id进行sql查询的结果。