MySQL: Offset и Limit как правильно составить запрос

227
01 мая 2018, 02:02

Допустим есть таблица users в которой 40 записей

Тогда запрос:

SELECT id, firstname, lastname, score FROM users ORDER BY somethink DESC LIMIT 30 OFFSET 0

вернет первые 30 записей, как и ожидается, но запрос:

SELECT id, firstname, lastname, score FROM users ORDER BY somethink DESC LIMIT 30 OFFSET 20

вернет не последние 20 записей, а последние 30.

Как сделать так, чтобы возвращалось не больше 30 записей, но если должно быть выведено меньше 30, то выводилось именно столько?

P.S. Проблема в том, что LIMIT выставляется "железно" и если запись должна быть в OFFSET, но должно вернуться записей меньше, чем указано в LIMIT, запись возвращается, чтоб в результате было столько записей, сколько указано в LIMIT

READ ALSO
Что делает этот запрос MySQL

Что делает этот запрос MySQL

есть такие запросыЕсли первый,второй,третий я понял, то что делает четвертый? И можно ли его переписать без использования временной таблицы

193
Сортировка комментариев по лайкам

Сортировка комментариев по лайкам

Помогите, пожалуйста, подправить запрос, нужно отсортировать комментарии по лайкам и дизлайкам (то бишь по сумме лайков и дизлайков: cnt_total...

182
Переезд с Mysql на Mysqli

Переезд с Mysql на Mysqli

решил переехать на Mysqli с MysqlПеречитав несколько статей я понял что сделать это не так уж и трудно

311
Запрос с использованием внешнего ключа

Запрос с использованием внешнего ключа

Как сделать запрос: выбрать OrderItemsorder_num где Products

166