@Kostik_1993
Web Developer

MySQL сортировка в разные направления в запросе?

Всем привет. Не могу справиться с задачей, то-ли туповат, а может не все знаю и не могу придумать решения.
Суть такая, есть таблица мероприятий, у мероприятия есть дата проведения. Изначально список сортировался в одном направление от мероприятий наиболее актуальных к более старым. Но количество новых мероприятий увеличилось и стало непонятно где то что ближе к сегодняшнему дню. В итоге пришли к выводу что будущие игры в выдаче нужно сделать реверсом, то есть должна быть следующая хронология

Сегодня = 20.02.2019

Значит список нужно выстроить так
--- Тут будущие
21.02.2019
22.02.2019
23.02.2019
24.02.2019
25.02.2019
--- Если будущих игр нет дальше идут прошедшие
19.02.2019
18.02.2019
17.02.2019
16.02.2019
15.02.2019

Я пробовал через CASE, но при пагинации не все выводятся если количество на странице меньше чем количество актуальных
select *
    where `games`
from `games`
order by CASE WHEN date > NOW() THEN date END DESC, date DESC, `date` desc
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
select * from (
    (select * from `games`
where  date > now()
order by date desc)
union
(select * from `games`
where  date < now()
order by date )
              ) a
limit 0,50
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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