Выберите диапазон результатов из результата SQL

#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
 

Однако он отличается в зависимости от того, какой компонент базы данных вы используете.