Какой лучший SQL-запрос в SQLite для получения N-го элемента из списка данных.SQLite получить 12-й рекорд - самый эффективный?
Данные не имеют цифровых клавиш
Какой лучший SQL-запрос в SQLite для получения N-го элемента из списка данных.SQLite получить 12-й рекорд - самый эффективный?
Данные не имеют цифровых клавиш
Вы хотите СМЕЩЕНИЕ.
SELECT mycol FROM mytable ORDER BY mycol LIMIT 1 OFFSET 11;
Сокращенная версия:
SELECT mycol FROM mytable ORDER BY mycol LIMIT 11,1;
Link to documentation, который описывает OFFSET следующим образом:
Дополнительный OFFSET следующий LIMIT определяет, сколько строк пропустить в начале результирующего набора ,
Используйте это, если вы не знаете, какие типы полей можно сортировать по, затем цикл к последней записи:
select * from table limit 12
Если есть поле что поставит таблицу в порядке, это вы должны получить 12-й рекорд:
select * from table where field = (select field from table order by field desc limit 12) limit 1
EDIT: Это SQLite 2.x синтаксис перед тем компенсирующего вступ uced. (Последняя версия, которую я использовал.)
Я ценю обновление вашего ответа. –
Так, скажем, ваш запрос был
SELECT * from myTable
ORDER BY someField
Вы можете использовать LIMIT
и OFFSET
к
SELECT * from myTable
ORDER BY someField
LIMIT 1 OFFSET 11
Я смотрю на this documentation, чтобы получить это. Я думаю, это ограничивает вас одним результатом, пропуская первые 11 строк.
Возможный дубликат [SQLite3 (или общий SQL) извлекает n-я строка результата запроса] (http://stackoverflow.com/questions/3419626/sqlite3-or-general-sql-retrieve-nth-row-of- a-query-result) –