需要在循环中放置查询以逐个返回结果集

时间:2010-11-18 13:23:53

标签: android sqlite limit clause

我有SQLite数据库查询,它一次返回一条记录。 这是查询:

rawQuery("SELECT id, category_id, title, text FROM customer WHERE (reads = (SELECT MIN(minReads) FROM categories)) AND status = 'a' ORDER BY rating DESC, rand_index DESC LIMIT 1 ",null);

如果我想获取下一条记录,因为我们在上面的SQLite查询中应用了限制,我无法获得下一条记录。 Limit = 1是必要的,因为我在db中有数千条记录。

如何在不修改现有查询的情况下获取下一条记录。我不能对此应用循环,因为我有很多记录,而且我不想同时记录所有记录。我想让它一个接一个地动态获取。我希望能够将结果存储在数组中,因为我可能需要旧记录,同时获取下一条记录。

任何输入都会有很大的帮助。

2 个答案:

答案 0 :(得分:2)

你应该获取所有记录,然后在你的本地类对象表单中循环它们,这是一个非常糟糕的想法,循环sql查询,这真的很慢。

答案 1 :(得分:1)

您可以通过一个查询获得一些合理数量的记录,例如100条带LIMIT 100的记录,然后获取每条第n条记录的LIMIT 100 OFFSET(n-1)* 100的附加记录部分'部分。

基本上,这是一个简单的分页实现。