LIMIT и OFFSET

Базовый SQL
≈ 1 мин чтения

LIMIT оставляет только часть результата

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

SELECT id, name
FROM products
ORDER BY id
LIMIT 10;

Запрос сначала задаёт порядок по id, а затем возвращает первые десять строк этого упорядоченного результата.

OFFSET пропускает строки

SELECT id, name
FROM products
ORDER BY id
LIMIT 10 OFFSET 20;

OFFSET 20 пропускает первые двадцать строк, после чего LIMIT 10 оставляет следующие десять. Такой шаблон часто используют для простой нумерованной пагинации.

Для предсказуемой пагинации нужен стабильный ORDER BY. Если сортировка не задана или несколько строк неразличимы по указанным полям сортировки, состав страниц может быть нестабильным. Часто полезно добавить уникальный столбец как последний критерий.

LIMIT и OFFSET широко используются, но конкретный синтаксис ограничения результата различается между СУБД. При работе с конкретной базой стоит проверить её диалект.