#sql
Вопрос:
Я хочу захватить выборку записей из таблицы SQL между 2 заданными диапазонами
Например,
select * from images_table where catagory = 'trees';
дает мне 60 результатов
Как мне получить записи только между результатом 40 и результатом 60?
Комментарии:
1. Отметьте свой вопрос в базе данных, которую вы используете. Кроме того, 40-я строка не определена без столбца (и
ORDER BY
!), который определяет порядок. Таблицы SQL представляют собой неупорядоченные наборы.
Ответ №1:
Вам нужно упорядочить результаты по чему-то, потому что таблицы SQL представляют собой неупорядоченные наборы, как и наборы результатов без order by
. Затем в стандартном SQL вы можете использовать offset
/ fetch
:
select i.*
from images_table i
where i.catagory = 'trees'
order by i.image_id -- an example of what you might want to order by
offset 19 row fetch next 20 rows only;
Обратите внимание, что не все базы данных поддерживают offset
/ fetch
, но почти все имеют аналогичную функциональность.
Ответ №2:
В mysql вы можете использовать ОГРАНИЧЕНИЕ:
SELECT * FROM table LIMIT 100, 200
Однако он отличается в зависимости от того, какой компонент базы данных вы используете.