@nailpaw

Как несколько раз отсортировать вывод в mysql одним запросом?

Мне нужно получить последние 5 записей по дате, запрос:
SELECT * FROM news ORDER BY date DESC LIMIT 5

Полученный вывод нужно отсортировать в обратном порядке по id. Так как новости хранят тип date 2020-02-18, если я пользуюсь запросом выше, то получаю такой вывод: Новость1, Новость2, Новость3.... эти новости имеют одинаковую дату. А мне нужно получить их в обратном порядке.
Как это сделать 1 запросом или может есть другое решение?

Для примера, есть решение использовать тип date time, тогда 1 запросом все решается, но это не мой случай.
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
v3shin
@v3shin
Веб-шаман
SELECT * FROM news ORDER BY date DESC, id DESC LIMIT 5
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Bavashi
@Bavashi
Если я правильно вас понял, то попробуйте так:
SELECT *
FROM (
SELECT * FROM news ORDER BY date DESC LIMIT 5
) as t
ORDER BY id;
Ответ написан
kimono
@kimono
Web developer
SELECT t1.* FROM news t1
LEFT JOIN (SELECT id FROM news t2 ORDER BY created_at DESC LIMIT 5) t3 ON t1.id = t3.id
ORDER BY t1.id
Ответ написан
Ваш ответ на вопрос

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

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