繁体   English   中英

MySQL按日期排序,首先为NULL

[英]MySQL Order by Date, with NULL first

我有一个select语句,我想从表中选择1条记录。 结构是:

id | start_time 
--------------
1    NULL
2    2014-08-23
3    2014-09-01

我想选择具有NULL开始时间的项目,但如果不存在,我希望它选择最新的start_time 我尝试过使用带有LIMIT 1 ORDER ,但是使用ORDER BY start_time要么首先给出NULL,然后是最早的启动,要么是最新的启动然后是NULL。 是否可以得到结果顺序1,3,2

您可以使用两个排序表达式来获得所需的顺序:

select t.*
from table t
order by (start_time is null) desc,
         start_time desc
limit 1;

您可以有两个不同的ORDER BY表达式:

SELECT * from table ORDER BY (start_time IS NULL) DESC, start_time DESC;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM