Sqlite: Как показать результаты от X до Y - PullRequest
2 голосов
/ 01 декабря 2011

Я новичок в sql (и sqlite), и до сих пор я узнал, что мне нужно использовать count, чтобы получить количество строк, возвращаемых запросом. Однако, если я получу, например, 10 000 результатов и хотел бы разделить их на 10 "страниц", я бы хотел показать только результаты 0-1 000 на одной странице, 1 000-2 000 на другой странице и т. Д. .

Как мне написать SQL-запрос, который показывает только те результаты, которые меня интересуют? Я думаю, мне нужно было бы сделать что-то вроде этого:

select *
from sometable
where somecol like '%whatever%'
   AND resultcount > 1000
   AND resultcount < 2000;

Я прошу прощения, если на этот вопрос уже был дан ответ, но я не знаю, что мне следует искать, и до сих пор я не нашел ни одного решения, достаточно простого для начинающего;)

Ответы [ 3 ]

3 голосов
/ 01 декабря 2011

Вы можете использовать функцию LIMIT и OFFSET в sqlite.

SELECT *
FROM sometable
WHERE somecol LIKE '%whatever%'
LIMIT 1000 OFFSET 1000

LIMIT X OFFSET Y является ПРЕДЕЛОМ X записей, с Y СМЕЩЕНИЕМ

, поэтому LIMIT 10 OFFSET 50 вернет 10 записей со смещением 50 записей.


Существует также синтаксис LIMIT <skip>, <count>, если вы предпочитаете этот стиль

1 голос
/ 01 декабря 2011

Это может помочь:

SELECT * FROM sometable 
WHERE somecol like '%whatever%''
LIMIT 100 OFFSET x

где x - смещение, откуда должны начинаться записи.

1 голос
/ 01 декабря 2011

То, что вы ищете, является частью "LIMIT" оператора SELECT.

Полная документация для оператора SQLite select, включая LIMIT, может быть найдена здесь: http://www.sqlite.org/lang_select.html

Пример: если вы хотите получить 10 строк из таблицы, указав строку 50, вы должны использовать

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