SQLiteDatabase#queryでOFFSET句を指定する
個人用メモ。
たとえば、
SELECT * FROM sample ORDER BY add_date LIMIT 10
というSQLを実行する場合、SQLiteDatabase#queryの第8引数に"10"を指定しますが、
SELECT * FROM sample ORDER BY add_date LIMIT 10 OFFSET 20
という具合に、OFFSET句を指定したい場合は、
10 OFFSET 20
ではなく、
20,10
とOFFSET・LIMITの順でカンマ区切りで指定する必要がある。あとから考えると、フツーにSQLの問題でしたorz
コードはこんな感じ。
SQLiteDatabase db = helper.getReadableDatabase(); Cursor csr = db.query("sample", null, null, null, null, null, "add_date", "20,10");
つか、
java.lang.IllegalArgumentException: invalid LIMIT clauses:LIMIT 10 OFFSET 20
とだけ出されても分からんわ。。。