MySQL 自定义排序


      项目中有时需要按照业务的要求对数据进行排序,但是针对排序的字段直接使用 ORDER BY AAA DESC,BBB ASC 这样可并不能满足要求。比如某个字段orderState的值可能为 【3,5,2,4,1】,直接排序的话要么是12345,要么是54321,但是排序要求可能是按照24135这样排,那么此时可以使用自定义排序。下面的例子,就是按照 对 tmp4.operatestate 这个状态值 按照【承运中】,【待分配】进行降序排序。

ORDER BY FIELD(tmp4.operatestate, '承运中', '待分配') DESC

【注意】:这种排序方式效率是很低的,如果数据量较小且数据变化频率不大或者有较长时间的缓存,可以使用这种排序,否则尽量避免使用此种排序方法,这就要求设计业务方案时以及对其实现时考虑到排序的问题,尽量避免出现这种情况。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM