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