Выражения LIMIT
и OFFSET
Выражение LIMIT
Выражение LIMIT
является модификатором вывода. Логически оно применяется в самом конце запроса. Выражение LIMIT
ограничивает количество выводимых строк.
Обратите внимание, что хотя LIMIT
можно использовать без условия ORDER BY
, в таком случае результаты могут быть не детерминированными. Тем не менее, это может быть полезно, например, когда вы хотите получить быстрый срез данных.
Выражение OFFSET
Выражение OFFSET
указывает, с какой позиции начинать считывание значений, т. е. первые OFFSET
значений игнорируются.
Синтаксис
SELECT ...
FROM ...
[ ORDER BY ... ]
LIMIT <count> [ OFFSET <start> ]
[ ... ]
Параметры
-
<count>
Количество возвращаемых строк. Должно быть неотрицательной целой величиной.
ЗначениеNULL
также принимается и рассматривается как неограниченное.
-
OFFSET <start>
Номер строки, после которой возвращаются ограниченные/извлеченные строки. Должен быть неотрицательной целой величиной.
ЕслиOFFSET
опущено, вывод начинается с первой строки в наборе результатов.
ЗначениеNULL
также принимается и рассматривается как неограниченное (т. е. строки пропускаться не будут).
Примеры
-
Выберем первые 5 дней из таблицы дней недели:
SELECT * FROM weekdays LIMIT 5;
+--------+-----------+ | number | name | +--------+-----------+ | 1 | Monday | +--------+-----------+ | 2 | Tuesday | +--------+-----------+ | 3 | Wednesday | +--------+-----------+ | 4 | Thursday | +--------+-----------+ | 5 | Friday | +--------+-----------+
-
Выберем 5 строк из таблицы дней недели, начиная с позиции 1 (т. е. игнорируя первую строку):
SELECT * FROM weekdays LIMIT 5 OFFSET 1;
+--------+-----------+ | number | name | +--------+-----------+ | 2 | Tuesday | +--------+-----------+ | 3 | Wednesday | +--------+-----------+ | 4 | Thursday | +--------+-----------+ | 5 | Friday | +--------+-----------+ | 6 | Saturday | +--------+-----------+