MySQL Порядок по нескольким столбцам вместе (не порядок по field1 asc, field2 asc) - PullRequest
5 голосов
/ 01 декабря 2009

кажется типичным вопросом, но он другой.

У меня есть таблица с идентификатором и 3 поля отметки времени (просто). Первоначально все 3 поля являются нулевыми, и они заполняются значениями. Примеры строк:

id time1      time2      time3
1  1259625661 1259643563 null
2   null      1259621231 null
3  1259625889 null       1259644511
4   null      1259621231 null
5   null      null       1259644511
6   null      1259621231 null
7  1259625889 null       null

Мне нужно получить список идентификаторов, отсортированных по самой последней отметке времени (игнорируя, если это время1, время2 или время3). Выполнение порядка по time1 desc, time2 desc, time3 desc дает мне неправильный список, так как сначала сортируется все поле time1, затем второе и т. Д.

Ожидаемый результат - список идентификаторов.

Что можно сделать в MySQL одним запросом? Спасибо

1 Ответ

13 голосов
/ 01 декабря 2009
SELECT  *
FROM    mytable
ORDER BY
        GREATEST(
        COALESCE(time1, 0),
        COALESCE(time2, 0),
        COALESCE(time3, 0)
        ) DESC
...