MySQL按多列组合排序(不是按field1 asc、field2 asc排序)

MySQL按多列组合排序(不是按field1 asc、field2 asc排序),sql,mysql,sql-order-by,Sql,Mysql,Sql Order By,这似乎是一个典型的问题,但它是不同的 我有一个带有id和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

这似乎是一个典型的问题,但它是不同的

我有一个带有id和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
我需要的是获得一个id列表,该列表按最近的时间戳排序(如果在time1、time2或time3中则忽略)。 按time1 desc、time2 desc、time3 desc排序会给我一个错误的列表,因为它首先对所有time1字段排序,然后对第二个字段排序,以此类推

预期结果是id的列表


这可以在MySQL中通过一个查询完成吗?感谢

用户询问时,位于的版本说明可能会有用。
@jensgram
:很好的观点。我添加了
COALESCE
来处理所有案例。
SELECT  *
FROM    mytable
ORDER BY
        GREATEST(
        COALESCE(time1, 0),
        COALESCE(time2, 0),
        COALESCE(time3, 0)
        ) DESC