MySql中一条记录两个字段同时参与排序的问题

      对某些数据需要分情况来进行排序,比如当rebate_type = '0''时,取price,当rebate_type in('1','2','3')时,需要取rebate_price。对于这样的数据进行排序的时候就会比较复杂,需要分情况讨论来进行排序。以下是本人写的一条sql语句来解决这样的问题。性能方面没有进行深入的探讨,如果有更好的方法希望能提出来。

正序(ASC)

SELECT t.price,t.rebate_price FROM `t_goods` t where t.is_delete = '0' ORDER BY 
case when t.rebate_type = '0' then t.price when t.rebate_type in('1','2','3') then t.rebate_price END;

倒序(DESC)

SELECT t.price,t.rebate_price FROM `t_goods` t where t.is_delete = '0' ORDER BY 
case when t.rebate_type = '0' then 0-t.price when t.rebate_type in('1','2','3') then 0-t.rebate_price END;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值