Предложите реализацию метода сортировки для MySQL-запроса?
Озадачился таким вот вопросом:
Есть поля, условно, dt_start, dt_end, которые хранят timestamp начала и конца некоего события.
Требуется сделать такую сортировку в MySQL-запросе, чтобы в результате первыми шли события, проходящие сейчас, затем шли грядущие события по возрастанию их даты, а затем - прошедшие, по убыванию их даты.
Не интересуют варианты "union", "отсортируй результат в коде" и пр.
Только махинации с полем ORDER BY.
Интересует принципиальная возможность написать такой запрос (буду рад примеру), или же заключение о том, что такой запрос построить не удастся.
Считайте это просто разминкой для ума.
Спасибо. :)
Для правильного вопроса надо знать половину ответа
А в чём сложность этой задачи?
SELECT *
FROM `table`
ORDER BY IF(NOW() BETWEEN `dt_start` AND `dt_end`, 0,
IF (NOW() < `dt_start`, 1, 2)),
ABS(DATEDIFF(NOW(), `dt_start`)),
`dt_start`, `dt_end`