В следующем запросе:
SELECT column
FROM table
LIMIT 18 OFFSET 8
сколько результатов мы получим как вывод и где-то где?
В следующем запросе:
SELECT column
FROM table
LIMIT 18 OFFSET 8
сколько результатов мы получим как вывод и где-то где?
Он вернет 18 результатов, начиная с записи № 9 и заканчивая записью № 26.
Начните с чтения запроса со offset
. Сначала вы смещаете на 8, что означает, что вы пропускаете первые 8 результатов запроса. Затем вы ограничиваетесь 18. Это означает, что вы рассматриваете записи 9, 10, 11, 12, 13, 14, 15, 16... 24, 25, 26, которые в общей сложности 18 записей.
Проверьте это.
А также официальная документация.
OFFSET
- это не что иное, как ключевое слово, указывающее начало курсора в таблице
SELECT column FROM table LIMIT 18 OFFSET 8 -- fetch 18 records, begin with record 9 (OFFSET 8)
вы получите ту же форму результата
SELECT column FROM table LIMIT 8, 18
визуальное представление (R
- одна запись в таблице в некотором порядке)
OFFSET LIMIT rest of the table
__||__ _______||_______ __||__
/ \ / \ /
RRRRRRRR RRRRRRRRRRRRRRRRRR RRRR...
\________________/
||
your result
Предложение LIMIT используется для ограничения количества результатов, возвращаемых в инструкции SQL. Итак, если у вас 1000 строк в таблице, но только хотите вернуть первые 10, вы бы сделали что-то вроде этого:
SELECT column
FROM table
LIMIT 10
Это похоже на предложение TOP на Microsoft SQL Server. Однако предложение LIMIT всегда идет в конце запроса в MySQL и PostgreSQL.
Теперь предположим, что вы хотели показать результаты 11-20. С ключевым словом OFFSET это будет так же просто, следующий запрос будет делать:
SELECT column FROM table
LIMIT 10
OFFSET 10
Вы получите результат от column
с 9 до 26, как вы уже упоминали OFFSET
, как 8