@sergeev_ev

Как работает mysql limit?

Добрый день!
Коллеги объясните, пожалуйста, почему у меня запрос с LIMIT
отрабатывает как в примере из этой статьи:

https://ruhighload.com/post/Mysql+LIMIT
блок описан под заголовком Смещение.
SELECT * FROM users ORDER BY id DESC LIMIT 5, 10

а не как из этой:
2sql.ru/advanced/sql-limit
SELECT UniversityName FROM Universities LIMIT 4, 6

Почему в одной о смещении написано так а в другой иначе.
У меня разрыв шаблона.
Спасибо.
  • Вопрос задан
  • 2403 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Потому что верное описание синтаксиса limit дано в первой статье.
Что проверяется первоисточником https://dev.mysql.com/doc/refman/8.0/en/select.html
[LIMIT {[offset,] row_count | row_count OFFSET offset}]


Формируется выборка из row_count + offset числа строк, затем первые offset строк отбрасываются и в результирующий набор попадает не более row_count строк.

Без явно указанного order by выборка смысла не имеет вообще, СУБД по стандарту имеет право отдавать любые удовлетворяющие запросу данные в любом порядке по своему усмотрению. Соответственно offset будет взять непонятно откуда и непонятно как.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы