MySQL ORDER BY 2 列有异常

MySQL ORDER BY 2 columns with exception

按 2 列对搜索结果进行排序时出现问题。

我的table:中转时间以秒为单位存储,预约为时间

id  transit_time appointment
----------------------------
 2  3845         09:00:00
11  22053        13:00:00
10  4852         08:00:00
11  5985         NULL 
13  7221         12:45:00
14  3812         NULL
17  4256         NULL
18  5663         NULL
19  4725         NULL

我想制作一个 select 来排序记录:

1. 约会最后为 NULL

2.按预约时间ASC

3。如果运输时间大于预约时间,则该记录应位于点 2

的排序之上

例如正确的顺序应该是:

id  transit_time appointment
----------------------------
11  22053        13:00:00
13  10221        12:45:00
10  3852         08:00:00 
 2  4245         09:00:00
11  5985         NULL
18  5663         NULL
19  4725         NULL
17  4256         NULL
14  3812         NULL

我已经用 CASE 尝试了很多种类,但没有运气得到那个订单。任何帮助将不胜感激。

SELECT * FROM table WHERE ...
ORDER BY (CASE WHEN appointment IS NULL THEN 1 ELSE 0 END) asc, 
transit_time desc

转换为秒进行比较

 ORDER BY CASE WHEN time_appointment IS NULL THEN 1 ELSE 0 END ,
 transit_time DESC,
CASE WHEN transit_time > TIME_TO_SEC(time_appointment) THEN transit_time ELSE NULL END