Подтвердить что ты не робот

SQLite3 (или общий SQL) извлекает n-ю строку результата запроса

быстрый вопрос о SQLite3 (может также быть общим SQLite)

Как получить n-ю строку результата запроса?

row_id (или какой-либо индекс) не будет работать в моем случае, учитывая, что таблицы содержат столбец с числом. На основании некоторых данных запрос нуждается в несортированных или отсортированных данных по критериям asc/desc.

Но мне может понадобиться быстро получить, скажем, строки 2 и 5 результатов.

Иначе, чем реализовать sqlite3_step() == SQLITE_ROW со счетчиком прямо сейчас, я не знаю, как это сделать.

И мне не очень нравится это решение из-за проблем с производительностью. поэтому, если кто-то может отказаться от намека, который будет высоко оценен.

Отношения Дэвид

4b9b3361

Ответ 1

добавить LIMIT 1 и OFFSET <n> в запрос
пример SELECT * FROM users LIMIT 1 OFFSET 5132;

Ответ 2

Общий подход заключается в том, что если вам нужна только n-я строка из m строк, используйте соответствующее условие where, чтобы получить строку .

Если вам нужно попасть в строку и не можете, потому что критерии where могут вас там найти, ваша база данных имеет серьезную проблему с дизайном. Он не выполняет первую нормальную форму, в которой говорится, что "Нет строкового упорядочения строк".