mysql按字段和使用当前日期排序
我有一张桌子mysql按字段和使用当前日期排序,mysql,sql-order-by,Mysql,Sql Order By,我有一张桌子 Id ordertype orderdate 1 open 09/01/2014 2 pending 09/01/2014 3 open 09/30/2014 4 closed 06/01/2014 5 closed 9/15/20143 我已经创建了一个mysql查询,以按我想要的字段排序 se
Id ordertype orderdate
1 open 09/01/2014
2 pending 09/01/2014
3 open 09/30/2014
4 closed 06/01/2014
5 closed 9/15/20143
我已经创建了一个mysql查询,以按我想要的字段排序
select * from table order by FIELD(ordertype, 'pending', 'open', 'closed'), orderdate
上面的表格将按哪个排序
Id ordertype orderdate
2 pending 09/01/2014
3 open 09/30/2014
1 open 09/01/2014
5 closed 09/01/2014
4 closed 06/01/2014
先挂起,然后打开,最后关闭
但我想做的是,根据今天的日期,把关闭的放在顶部。这意味着ID#5将在2014年1月9日之前处于顶部,然后它将与其他已关闭订单一起降至底部
Id ordertype orderdate
5 closed 09/01/2014
2 pending 09/01/2014
3 open 09/30/2014
1 open 09/01/2014
4 closed 06/01/2014
感谢您的帮助使用此:
select * from table order by FIELD(ordertype, 'pending', 'open', 'closed'), orderdate, orderdate desc
您可以为此使用大小写表达式,例如
select *
from table1
order by
case when ordertype = 'closed' and orderdate > curdate() then 0 else 1 end
, FIELD(ordertype, 'pending', 'open', 'closed')
, orderdate
注意:我不确定您是否需要>curdate()或>=curdate()请不要忘记勾选此作为接受答案