Команда OFFSET
Команда OFFSET используется для пропуска
указанного количества строк в результате запроса.
Чаще всего применяется совместно с командами
LIMIT
и ORDER BY
для постраничного вывода данных.
Синтаксис
SELECT column_list FROM table_name
ORDER BY column_name
LIMIT limit_value OFFSET offset_value
Таблицы для примеров
| id | name | age | salary |
|---|---|---|---|
| 1 | Ivan | 25 | 40000 |
| 2 | Petr | 30 | 45000 |
| 3 | Sergey | 28 | 42000 |
| 4 | Olga | 35 | 55000 |
| 5 | Dmitry | 40 | 60000 |
Пример
Давайте выберем записи, пропустив первые две строки и получив следующие три записи по возрастанию идентификатора:
SELECT id, name, salary FROM employees
ORDER BY id
LIMIT 3 OFFSET 2
Результат выполнения кода:
| id | name | salary |
|---|---|---|
| 3 | Sergey | 42000 |
| 4 | Olga | 55000 |
| 5 | Dmitry | 60000 |
Пример
Давайте реализуем постраничный вывод, при котором запрос возвращает вторую страницу данных при сортировке сотрудников по убыванию зарплаты:
SELECT id, name, salary FROM employees
ORDER BY salary DESC
LIMIT 2 OFFSET 2
Результат выполнения кода:
| id | name | salary |
|---|---|---|
| 2 | Petr | 45000 |
| 3 | Sergey | 42000 |