如何在mysql中订购create_date和update_date

时间:2014-09-12 03:50:02

标签: mysql sql

在我的数据库中,有一个这样的表

student
=======
name
create_date timestamp current_timestamp
update_date timestamp null

更新日期默认为null,仅当有更新时,update_date才会设置时间戳。

问题是,我想按日期订购记录,如果有update_date,我想使用update_date,如果update_date为null,则使用create_date

如何从简单的

更改查询
Select name from student order_by create_date desc 

完成我的案子?

非常感谢

1 个答案:

答案 0 :(得分:1)

您可以使用表达式返回指定值

ANSI标准表达式

CASE WHEN update_date IS NOT NULL THEN update_date ELSE create_date END

在MySQL中,我们有几个函数可以返回相同的结果:

IF(update_date IS NOT NULL, update_date, create_date) 

IFNULL(update_date,create_date)

COALESCE(update_date,create_date)

使用类似ORDER BY子句

中的一个表达式
ORDER BY IFNULL(update_date,create_date) DESC