mysql按字段和大小写排序

biswetbf  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(243)

我试图按字段排序,并在than语句时按大小写排序。如果case为ns,则日期应为asc,时间应为asc,如果case为pp,则日期应为asc,时间应为asc,如果case为done,则日期应为desc,时间应为asc,
ns未启动,pp推迟,done已完成,
我的代码:

select * from matches
where tournament_id = 12
order by FIELD(matches.status_key, 'ns', 'done', 'pp'),
CASE WHEN matches.status_key = 'ns' THEN ('matches.date ASC, matches.time ASC') END,
CASE WHEN matches.status_key = 'pp' THEN ('matches.date ASC, matches.time ASC') END,
CASE WHEN matches.status_key = 'done' THEN ('matches.date DESC, matches.time ASC') END;

我猜这是一个错误的方法,我需要一些指导,建议,帮助解决问题。
谢谢您

cuxqih21

cuxqih211#

我认为应该这样做:

order by 
    field(status_key, 'ns', 'done', 'pp'),
    case when status_key in ('ns', 'pp') then date,
    case when status_key = 'done'        then date desc,
    time

相关问题