2015-10-09 1 views
1

У меня есть таблица с 4 разными столбцами даты (date_created, date_saved, date_published, date_deleted), и я пытаюсь выполнить запрос «последние обновления», эффективно беря любую из этих четырех дат во внимание и сортировке по самым последним датам desc. Обычно вы могли бы сделать:MySQL - сортировка нескольких столбцов; не первый, затем второй и т. д.

date_created DESC, date_saved DESC, date_published DESC, date_deleted DESC 

Но я не хочу, чтобы придавать большее значение, чем date_created date_deleted. Все поля даты являются «обновлением», поэтому при сортировке все они должны рассматриваться одинаково.

Я бы предпочел не выбирать все результаты во всей базе данных, а затем использовать PHP для сортировки и ограничения ресурсов, так что существует ли способ сортировки DESC для всех этих 4 полей, при этом все они рассматриваются как равные значение?

+1

'ORDER BY БОЛЬШОЕ (DATE_CREATED, ...)' (или 'LEAST'): http://dev.mysql.com/doc/refman/5.0/en/ compare-operations.html, http://stackoverflow.com/questions/19445828/mysql-select-minimum-maximum-among-two-or-more-given-values – a1ex07

ответ

4

просто сделать:

ORDER BY GREATEST(date_created, date_saved, date_published, date_deleted) 
Смежные вопросы