PHP前端开发

如何按照状态对订单表数据排序,优先展示状态为 2 的订单?

百变鹏仔 2天前 #PHP
文章标签 订单

mysql 查询订单表按照状态排序 (-1 永远排最后,2 排最前)

如何将订单表中的数据按照状态排序,使得状态为 -1 的订单永远排在最后,状态为 2 的订单永远排在最前,其他状态按照升序排列?

sql 查询

select * from (select case when status==2 then 7,when status==-1 then -1end as newStatus,status from order_table) m order by newStatus desc;

说明:

该查询使用了 mysql 的 case 表达式将不同的状态映射到新的排序种子 newstatus 中:

然后,按照 newstatus 降序排列,即状态为 2 的订单排在最前,状态为 -1 的订单排在最后,其他状态按照升序排列。