Что значит по датам из всех полей? Если в одном столбце стоит дата максимальная для всей таблицы, а в другом - минимальная, то где должна находиться запись? В середине списка?)))
Вместо LEAST() я заюзал GREATEST(), чтобы большая дата была сверху. Но проблема: если стоящии в начале поля = NULL, то функа возращает NULL. Короче, вторая по величине дата при сортировки оказывается в конце списка.
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