Сортировка по датам

  • Автор темы Автор темы Keepun
  • Дата начала Дата начала

Keepun

Новичок
Сортировка по датам

Не могу запрос составить...

Дано:
Таблица с несколькими полями типа DATE.

Нужно:
Отсортировать запрос по датам из всех полей с типом DATE.

Проблема:
MIN() принимает только 1 аргумент (так он мне сказал) и список полей ему не передать.
 
Не могу запрос составить...
Как пробовал?

Отсортировать запрос по датам из всех полей с типом DATE.
Order BY ?


MIN() принимает только 1 аргумент (так он мне сказал) и список полей ему не передать.
Объясни, пожалуйста, как ты собрался применять min к сортировке?
o_O
 
я так понимаю, нужно что-то типа: ORDER BY LEAST(field1,field2,field3)
 
Отсортировать запрос по датам из всех полей с типом DATE
Что значит по датам из всех полей? Если в одном столбце стоит дата максимальная для всей таблицы, а в другом - минимальная, то где должна находиться запись? В середине списка?)))
 
Gas, угу...
Принцип схож...

Вместо LEAST() я заюзал GREATEST(), чтобы большая дата была сверху. Но проблема: если стоящии в начале поля = NULL, то функа возращает NULL. Короче, вторая по величине дата при сортировки оказывается в конце списка.
 
Keepun
добавляешь IFNULL и получаешь работающий, но ужасный запрос :-)
 
Keepun
я заюзал GREATEST(), чтобы большая дата была сверху
GREATEST() не отправит большую дату наверх, а отсортирует по максимальной дате в записи. Для того, чтобы бОльшая дата была наверху надо использовать DESC.
Если тебе нужно отсортировать записи по наибольшей или наименьшей дате из всех полей, то тогда понятно и вопросов нет. Но формулировка
Отсортировать запрос по датам из всех полей с типом DATE
для меня несколько странная. Можешь, если несложно, отсортировать эти данные (не в смысле написать запрос, а расположить их руками, так как тебе надо) и объяснить почему так?
id date1 date2
1 2008-12-01 2008-12-05
2 2008-12-03 2008-12-11
3 2008-12-15 2008-12-02
 
zerkms
идея с IFNULL() прокатила :)
запрос не такой ужасный, да и минимальная нагрузка на сервер позволяет такое юзать...
 
Сверху