欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql按照自定義(指定順序)排序的方法實例

 更新時間:2022年06月01日 09:40:23   作者:Quader  
在我們寫業(yè)務(wù)代碼的時候,會經(jīng)常碰見排序方式既不是正序也不是倒序,下面這篇文章主要給大家介紹了關(guān)于mysql按照自定義(指定順序)排序的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

一、mysql中實現(xiàn)指定排序需求

一般情況下,我們排序都是直接利用 order by 字段 asc/desc;但是如果要排序的字段數(shù)據(jù)格式并不能直接實現(xiàn),或者說我們需要指定的順序且沒有什么規(guī)律,簡單的order by字段就實現(xiàn)不了;

如下圖中表;

我們需要按照中國銀行,建設(shè)銀行,工商銀行順序排序;直接使用order by 字段并不能得到我們想要的順序

同樣,對于類型我們想要按正回購,買入,賣出這樣的順序去排序,簡單的order by 字段也不能實現(xiàn);

二、解決方案

1:自定義排序?qū)崿F(xiàn)

01. case when 轉(zhuǎn)換實現(xiàn)自定義排序;

使用case when 將字段中的中國銀行,建設(shè)銀行,工商銀行,轉(zhuǎn)換為1,2,3,這樣在我們再使用order by實現(xiàn)數(shù)據(jù)的自定義重排。

02:mysql排序函數(shù)filed 實現(xiàn)自定義排序(推薦);

MySQL中的field()函數(shù),可以用來對SQL中查詢結(jié)果集進行指定順序排序。

field(str,str1,str2,str3…)字段str按照字符串str1,str2,str3…的順序返回查詢到的結(jié)果集。如果表中str字段值不存在于str1,str2,str3中的記錄,放在結(jié)果集最前面返回。

03:函數(shù)locate 實現(xiàn)自定義排序;

還可以利用locate函數(shù)來實現(xiàn)排序;

locate(subStr,string) :判斷字符串(string)中是否包含另一個字符串(subStr),函數(shù)返回的是subStr在string中出現(xiàn)的位置;

04:函數(shù)lnstr 實現(xiàn)自定義排序;

INSTR(STR,SUBSTR) 在一個字符串(STR)中搜索指定的字符(SUBSTR),返回發(fā)現(xiàn)指定的字符的位置(INDEX);

同locate函數(shù)大致一樣,不過函數(shù)內(nèi)參數(shù)一個在前,一個在后;

05:利用數(shù)據(jù)字典實現(xiàn)自定義排序;

對于部分相對比較固定的字段,一般可以建立數(shù)據(jù)字典項來,不僅方便返回給前端做下拉等,也方便后期添加和修改的維護,也可以在數(shù)據(jù)字典中給與對應(yīng)的順序;主要可以方便后期調(diào)整和維護;只需要修改數(shù)據(jù)字典中的排序即可;

首先,需要在數(shù)據(jù)字典表中建立相應(yīng)的數(shù)據(jù)字典項并維護順序;

其次,存儲時直接存儲對應(yīng)的數(shù)據(jù)字典值就可以了,然后關(guān)聯(lián)查詢,利用數(shù)據(jù)字典順序排序;即可;

如果順序有變,或者要添加新的類型,也只需要在數(shù)據(jù)字典中維護即可,不需要修改sql,擴展性較好(有需要甚至可以給與數(shù)據(jù)字典的配置頁面專門維護);

總結(jié)

到此這篇關(guān)于mysql按照自定義(指定順序)排序的文章就介紹到這了,更多相關(guān)mysql按照自定義排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論