0

一度に 1 つのレコードを返す SQLite DB クエリがあります。これはクエリです:

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です。

既存のクエリを変更せずに次のレコードを取得するにはどうすればよいですか? たくさんのレコードがあり、同時にすべてのレコードが必要ないため、これにループを適用することはできません。1つずつ動的に取得したい。次のレコードを取得するときに古いレコードも必要になる可能性があるため、結果を配列に格納できる場所のようなものになりたいです。

任意の入力は大きな助けになります。

4

2 に答える 2

2

すべてのレコードを取得してから、ローカル クラス オブジェクト形式でそれらをループする必要があります。SQL クエリのループを行うのは非常に悪い考えです。これは非常に低速です。

于 2010-11-18T13:33:05.090 に答える
1

1 つのクエリで妥当な量のレコードを取得できます。たとえば、 で 100 レコードをLIMIT 100取得し、n 番目のレコード部分ごとに LIMIT 100 OFFSET (n-1)*100 で追加のレコード部分を取得できます。

基本的に、これは単純なページネーションの実装です。

于 2010-11-18T13:44:47.383 に答える