1、mysql 使用order by field() 自定义排序
order by field(value,str1,str2,str3,str4......strn)
例如:select * from driver_log order by field(name,'Suzi','Ben','Henry');
2、ORDER BY 后可加多个字段,用英文逗号隔开。
f1用升序, f2降序,SQL该这样写
ORDER BY f1(默认升序), f2 DESC(或者:ORDER BY f1 ASC, f2 DESC)
如果都用降序,必须用两个desc:ORDER BY f1 DESC, f2 DESC
例如: 按照code, name进行降序排序:select * from a order by code, name desc;
对比code,name的单个字段降序排序,我们可以发现, 使用 order by code desc, name desc的时候,MySQL会先以code进行降序排序,在code进行降序排序该基础上,再使用name进行降序排序
另外我们还可以使用contat函数把多个字段拼接起来,在进行排序。但是要保证字段不能为null。下面我们来看一下concat的sql语句和结果。
select * from a order by concat(code,name) desc
结论:order by concat(code, name) desc的效果等同于 order by code desc, name desc