Ограничение MySQL по убыванию

Можно ли написать запрос для использования того же "LIMIT (from), (count)", но получить результат в обратном направлении?

В примере, если у меня есть 8 строк в таблице, и я хочу получить 5 строк в два этапа, я бы: запрос первого шага:

select * from table limit 0, 5

результат первого шага:

first 5 rows;

запрос второго шага:

select * from table limit 5, 5

результат второго шага:

last 3 rows;

Но я хочу получить его наоборот. Я хочу сказать, что с первого шага я хочу последние 3 строки, а со второго я хочу 5 первых строк. Спасибо за ваш ответ

Ответы

Ответ 1

Нет, вы не должны этого делать. Без предложения ORDER BY вы не должны полагаться на то, что результат будет одинаковым от запроса к запросу. Это может хорошо работать во время тестирования, но порядок неопределен и может сломаться позже. Используйте заказ.

SELECT * FROM table1 ORDER BY id LIMIT 5

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

SELECT * FROM table1 ORDER BY id DESC LIMIT 3

Это всегда будет работать, даже если количество строк в результирующем наборе не всегда равно 8.

Ответ 2

да, вы можете поменять эти 2 запроса

select * from table limit 5, 5

select * from table limit 0, 5

Ответ 3

Этот способ сравнительно проще

SELECT doc_id,serial_number,status FROM date_time ORDER BY  date_time DESC LIMIT 0,1;