2010-11-18 27 views
0

私は一度に1レコードずつ返すSQLite DBクエリを持っています。 これはクエリです:結果セットを1つずつ返すためにクエリをループに入れる必要があります

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のクエリに制限を適用しているとして、次のレコードを取得したい場合。 dbに何千ものレコードがあるので、Limit = 1が必要です。

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

すべての入力は大きな助けになります。

答えて

2

あなたはすべてのレコードを取得し、ローカルクラスオブジェクトフォームでそれらをループする必要があります。本当に遅いSQLクエリをループするのは本当に悪い考えです。

1

LIMIT 100の100レコードのような適切な量のレコードを取得した後、n番目のレコードの部分ごとにLIMIT 100 OFFSET(n-1)* 100の追加レコード部分を取得できます。

基本的には、単純なページ分割の実装です。

関連する問題