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