mysql中字段自定义排序

 今天项目中遇到一个对sql查询结果需要按字段  “自定义”  排序的问题。


如:默认是 0,1,2。结果为 1,0,2或 1,2,0;

mysql 中使用 field('field',....) 注:第一个field为关键字,‘field’ 为要指定的字段。


select t.* from tbl_obj_order t order by field(status,2,3,1,0,-1)

select t.* from tbl_obj_order t where status in(-1,0,1,2,3) order by field(status,2,3,1,0,-1)


两种方式的结果相同。


注意的问题:

1. 排序规则(字段可能的值)尽量写全!!

    当order by field(.......) 时,如果后面的排序字段没有写全(2,3,1,0)时:

    a).如果查询的结果里 的数据中其字段  不包含  省略的值(-1),则结果 不 影响。

    b).如果查询的结果里 的数据中其字段  包含      省略的值(-1),则结果 会 影响(默认的方式了)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值