Если я использую LIMIT в запросе MySQL, набор результатов должен быть равен пределу? - PullRequest
1 голос
/ 29 января 2009

например, select * from table limit 0,5
вернет не более 5 строк или
должно ли оно найти ровно 5, а если row_count не равно 5, он вернет пустой набор результатов?


что если запрос был select * from table limit 5?

Ответы [ 4 ]

7 голосов
/ 29 января 2009

http://dev.mysql.com/doc/refman/5.1/en/select.html

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

Таким образом, чтобы ответить на ваш вопрос напрямую, он вернул бы максимум 5 строк.

5 голосов
/ 29 января 2009

Запрос SELECT * FROM table LIMIT 0,5 вернет 5 записей, начиная с первой записи.

Запрос SELECT * FROM table LIMIT 5 также даст тот же результат, что и запрос выше.

Если в этой таблице меньше 5 записей, она не завершится с ошибкой, но вернет все имеющиеся записи.

Запрос SELECT * FROM table LIMIT 6,5 вернет запись 7,8,9,10,11, так как индекс начинается с 0.

2 голосов
/ 29 января 2009

Предел, ну, в общем, предел, поэтому он не вернет больше, чем столько строк. Может вернуть меньше.

0 голосов
/ 29 января 2009

В запросе "выберите * из таблицы 0,5" 0 не указывает минимальное количество записей для возврата. Это указывает на Смещение. Поэтому, когда вы говорите 0, если запрос «выбрать * из таблицы» возвращает 10 записей, «предел 0,5» вернет первые 5. Если вы используете «предел 5,5», он вернет последние 5 записей.

Если у вас есть только 2 записи, он вернет две записи. Он не вернет ошибку, если у вас нет результатов. LIMIT - это максимальный лимит. Минимум может быть любым, даже 0 записей.

«выбрать * из предела таблицы 5» аналогично «выбрать * из предела таблицы 0,5»

...