#mysql #sql-order-by
Вопрос:
У меня есть таблица с именем, фамилией и последующим столбцом. В настоящее время я отображаю результаты в следующем порядке
ORDER BY followup IS NULL, followup asc, lastname
Это помещает строки, в которых есть последующие действия, в начало с датой последующего выполнения, ближайшей к сегодняшнему дню. Затем, если дата продолжения равна НУЛЮ, она сортируется по фамилии.
На самом деле я хочу, чтобы сначала отображались последующие действия, которые происходят в течение недели с сегодняшней даты, затем НУЛЕВЫЕ последующие действия по фамилии, а затем остальные последующие действия, которые происходят более чем через неделю с даты их выполнения.
Не уверен, что это возможно с MYSQL и может потребовать пользовательской функции сортировки в PHP.
Любая помощь будет признательна.
Ответ №1:
пример ИСПОЛЬЗОВАНИЯ
order by case when followup is null then concat('2',lastname)
when date_add(followup, interval 7 day) > current_date
then concat('1',lastName)
else concat('3',lastName) end