Нужно поместить запрос в цикл для возврата набора результатов один за другим - PullRequest
0 голосов
/ 18 ноября 2010

У меня запрос к базе данных 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 ]

2 голосов
/ 18 ноября 2010

Вы должны получить все записи и затем перебрать их в форме объекта вашего локального класса, это действительно плохая идея - делать зацикливание SQL-запросов, это очень медленно.

1 голос
/ 18 ноября 2010

Вы можете просто получить некоторое разумное количество записей одним запросом, например, 100 записей с LIMIT 100, а затем получить дополнительные порции записей с LIMIT 100 OFFSET (n-1) * 100 для каждой n-й записи. .

По сути, это простая реализация нумерации страниц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...