Поиск…


Синтаксис

  • SELECT column_1 [, column_2]
    FROM table_1
    ORDER BY order_column
    LIMIT row_count [OFFSET row_offset]
  • SELECT column_1 [, column_2]
    FROM table_1
    ORDER BY order_column
    LIMIT [row_offset,] row_count

замечания

«Предел» может означать «Максимальное количество строк в таблице».

«Смещение» означает выбор из номера row (чтобы не путать значение первичного ключа или любое значение данных поля)

Ограничение и смещение

Учитывая следующую таблицу users :

Я бы имя пользователя
1 User1
2 Пользователь2
3 User3
4 Пользователь4
5 USER5

Чтобы ограничить количество строк в результирующем наборе запроса SELECT , предложение LIMIT может использоваться вместе с одним или двумя положительными целыми числами в качестве аргументов (включая нуль).

Предложение LIMIT с одним аргументом

Когда используется один аргумент, набор результатов будет ограничен только числом, указанным следующим образом:

SELECT * FROM users ORDER BY id ASC LIMIT 2
Я бы имя пользователя
1 User1
2 Пользователь2

Если значение аргумента равно 0 , набор результатов будет пустым.

Также обратите внимание, что предложение ORDER BY может быть важным, чтобы указать первые строки набора результатов, которые будут представлены (при заказе другим столбцом).

Предложение LIMIT с двумя аргументами

Когда в предложении LIMIT используются два аргумента:

  • первый аргумент представляет строку, из которой будут представлены строки результирующего набора, - это число часто упоминается как смещение , так как оно представляет строку, предшествующую начальной строке ограниченного результирующего набора. Это позволяет аргументу принимать 0 как значение и, таким образом, принимать во внимание первую строку набора без ограничений.
  • второй аргумент указывает максимальное количество строк, возвращаемых в результирующий набор (аналогично примеру одного аргумента).

Поэтому запрос:

SELECT * FROM users ORDER BY id ASC LIMIT 2, 3

Представляет следующий набор результатов:

Я бы имя пользователя
3 User3
4 Пользователь4
5 USER5

Обратите внимание, что когда аргумент offset равен 0 , результирующий набор будет эквивалентен одному аргументу LIMIT . Это означает, что следующие два запроса:

SELECT * FROM users ORDER BY id ASC LIMIT 0, 2

SELECT * FROM users ORDER BY id ASC LIMIT 2

Произведите тот же набор результатов:

Я бы имя пользователя
1 User1
2 Пользователь2

Ключевое слово OFFSET : альтернативный синтаксис

Альтернативный синтаксис для предложения LIMIT с двумя аргументами заключается в использовании ключевого слова OFFSET после первого аргумента следующим образом:

SELECT * FROM users ORDER BY id ASC LIMIT 2 OFFSET 3

Этот запрос вернет следующий набор результатов:

Я бы имя пользователя
3 User3
4 Пользователь4

Обратите внимание, что в этом альтернативном синтаксисе аргументы переключают свои позиции:

  • первый аргумент представляет количество строк, возвращаемых в результирующий набор;

  • второй аргумент представляет собой смещение.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow