mysql 根据不同状态进行排序、多字段排序

tech2023-07-23  104

需求描述

商城后台管理订单列表,需要先根据订单状态排序,在进行创建时间排序 排序规则:

代发货(asc)—>待付款(desc)—>待收货(desc)—>交易成功(desc)—>交易关闭(desc)

订单状态:

0->待付款;1->待发货;2->待收货;3->已完成;4->已关闭; order by case when orders.status=1 then 0 else 4 end, // 如果status=1,则返回0,其他的返回4 orders.status asc, // 按status排序 case when orders.status=1 then orders.create_time end asc, // 如果status=1则按create_time正序排序 case when orders.status!=1 then orders.create_time end desc // 如果status!=1则按create_time倒序排序
MySql 中关键字 case when then else end 的用法
case // 如果 when status=1 then 0 // status=1,则返回值0 else 4 // 其他的返回4 end // 结束
最新回复(0)