在我的数据库中,有一个这样的表
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
完成我的案子?
非常感谢
答案 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