亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySL實(shí)現(xiàn)如等級(jí)成色等特殊順序的排序詳解

 更新時(shí)間:2023年05月25日 14:54:46   作者:北橋蘇  
這篇文章主要為大家介紹了MySL實(shí)現(xiàn)如等級(jí)成色等特殊順序的排序詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言:

在涉及商品類(lèi)的項(xiàng)目時(shí),為了給同一類(lèi)商品定位,往往會(huì)分等級(jí)或者成色。而等級(jí)/成色有時(shí)是用類(lèi)似A,A+,A+1,K,L1,L2等英文與數(shù)字的組合進(jìn)行表述。既然是等級(jí),自然就會(huì)區(qū)分高等級(jí),低等級(jí)。有高有低,又給商品定了等級(jí),所以到了商品列表展示,等級(jí)排序自然少不了。     

項(xiàng)目在開(kāi)始做的時(shí)候關(guān)于商品等級(jí)字段是直接存儲(chǔ)的上面的字母數(shù)字,也就是A,A+1之類(lèi)的。所以在需要以等級(jí)排序的時(shí)候,以英文字母的方式升序倒序就出現(xiàn)了問(wèn)題,比如大部分等級(jí)中,S是最高級(jí),而英文倒序S排在了后面。 

沖突:

直接以英文字母排序很顯然是不行的,于是首先想到的是數(shù)據(jù)表的等級(jí)字段改為int,存入數(shù)字。在配置里或者單獨(dú)建一張表與對(duì)應(yīng)數(shù)字關(guān)聯(lián)一個(gè)等級(jí)。類(lèi)似K對(duì)應(yīng)1之類(lèi)的,需要升序降序就對(duì)數(shù)字排序,這樣就解決了S排序問(wèn)題。但是,現(xiàn)實(shí)的是商品表的數(shù)據(jù)量極大,如果要給原來(lái)的等級(jí)做關(guān)聯(lián),就要小心的寫(xiě)SQL替換或者手動(dòng)一個(gè)一個(gè)改。不知道有沒(méi)有在不需要修改表的情況下解決那種特殊字符排序的方法,后來(lái)還真想到了一個(gè)方法。 

解決方法:

通過(guò)使用MySQL的find_in_set函數(shù),通過(guò)自定義的順序進(jìn)行排序,所以后續(xù)將某個(gè)等級(jí)提前改動(dòng)都不會(huì)那么被動(dòng)了,如下示例。

1. 可以先定義升序,倒序的排列

"grade_desc" => ["S","A+","A1","A2","B+1","B+2","B1","B2","C+1","C+2","C1","C2","D+1","D+2","D1","D2","D3","E+1","E+2","E1","E2","F","G+","G1","G2","H+","H1","H2","I+","I1","I2","J+","J","K+","K"]"grade_asc" => ["K","K+","J","J+","I2","I1","I+","H2","H1","H+","G2","G1","G+","F","E2","E1","E+2","E+1","D3","D2","D1","D+2","D+1","C2","C1","C+2","C+1","B2","B1","B+2","B+1","A2","A1","A+","S"]

2. 查詢(xún)示例

3. ThinkPHP5的使用方式

3.1. 升序

$list = GoodsItem::where('delete_time','=',0)
            ->field('id,grade')
            ->orderRaw("find_in_set(grade,'K,K+,J,J+,I2,I1,I+,H2,H1,H+,G2,G1,G+,F,E2,E1,E+2,E+1,D3,D2,D1,D+2,D+1,C2,C1,C+2,C+1,B2,B1,B+2,B+1,A2,A1,A+,S')")
            ->select();
return $list->toArray();

3.2. 倒序

$list = GoodsItem::where('delete_time','=',0)
            ->field('id,grade')
            ->orderRaw("find_in_set(grade,'S,A+,A1,A2,B+1,B+2,B1,B2,C+1,C+2,C1,C2,D+1,D+2,D1,D2,D3,E+1,E+2,E1,E2,F,G+,G1,G2,H+,H1,H2,I+,I1,I2,J+,J,K+,K')")
            ->select();
        return $list->toArray();

3.3.效果

4. find_in_set函數(shù)

這個(gè)函數(shù)可以放在where中使用,查詢(xún)字段是否存在某個(gè)范圍內(nèi),有點(diǎn)像IN,但還是有區(qū)別,具體的后期補(bǔ)上。

以上就是MySQL實(shí)現(xiàn)如等級(jí)成色等特殊順序的排序詳解的詳細(xì)內(nèi)容,更多關(guān)于MySQL特殊順序排序的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • CentOS安裝配置MySQL8.0的步驟詳解

    CentOS安裝配置MySQL8.0的步驟詳解

    這篇文章主要介紹了CentOS安裝配置MySQL8.0的步驟,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-08-08
  • Centos5.5中安裝Mysql5.5過(guò)程分享

    Centos5.5中安裝Mysql5.5過(guò)程分享

    這篇文章主要介紹了Centos5.5中安裝Mysql5.5過(guò)程分享,本文使用編譯方法安裝MySQL,并給出了一些可能遇到的錯(cuò)誤和解決方法,需要的朋友可以參考下
    2015-01-01
  • 一文帶你了解MySQL的左連接與右連接

    一文帶你了解MySQL的左連接與右連接

    在MySQL中,左查詢(xún)和右查詢(xún)是通過(guò)使用LEFT?JOIN和RIGHT?JOIN關(guān)鍵字來(lái)執(zhí)行的,本文通過(guò)詳細(xì)的代碼示例簡(jiǎn)單介紹這兩種查詢(xún)方法的語(yǔ)法,需要的朋友可以參考下
    2023-07-07
  • 如何通過(guò)yum方式安裝mysql數(shù)據(jù)庫(kù)

    如何通過(guò)yum方式安裝mysql數(shù)據(jù)庫(kù)

    部署MySQL數(shù)據(jù)庫(kù)有多種部署方式,常用的部署方式就有三種,yum安裝、rpm安裝以及編譯安裝,這篇文章主要給大家介紹了關(guān)于如何如果通過(guò)yum方式安裝mysql數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • mysql5.0版本下載地址集合

    mysql5.0版本下載地址集合

    mysql5.0版本是比較經(jīng)典的版本,這個(gè)版本對(duì)大多數(shù)的cms支持比較好,但官方網(wǎng)站不容易找到下載地址,這里特整理下,方便需要mysql5.0的朋友
    2013-06-06
  • MySQL?數(shù)據(jù)類(lèi)型及最優(yōu)選取規(guī)則

    MySQL?數(shù)據(jù)類(lèi)型及最優(yōu)選取規(guī)則

    這篇文章主要介紹了MySQL?數(shù)據(jù)類(lèi)型及最優(yōu)選取規(guī)則,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-08-08
  • Mysql行與列的多種轉(zhuǎn)換(行轉(zhuǎn)列,列轉(zhuǎn)行,多列轉(zhuǎn)一行,一行轉(zhuǎn)多列)

    Mysql行與列的多種轉(zhuǎn)換(行轉(zhuǎn)列,列轉(zhuǎn)行,多列轉(zhuǎn)一行,一行轉(zhuǎn)多列)

    在MySQL中,行轉(zhuǎn)列和列轉(zhuǎn)行都是非常有用的操作,本文就來(lái)介紹一下Mysql行與列的多種轉(zhuǎn)換,主要包括行轉(zhuǎn)列,列轉(zhuǎn)行,多列轉(zhuǎn)一行,一行轉(zhuǎn)多列,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • 解析Mysql Profiling的使用

    解析Mysql Profiling的使用

    本篇文章是對(duì)Mysql Profiling的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL鎖的知識(shí)點(diǎn)總結(jié)

    MySQL鎖的知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理了關(guān)于MySQL鎖的知識(shí)點(diǎn)總結(jié)以及實(shí)例內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-11-11
  • MySQL存儲(chǔ)引擎InnoDB的配置與使用的講解

    MySQL存儲(chǔ)引擎InnoDB的配置與使用的講解

    今天小編就為大家分享一篇關(guān)于MySQL存儲(chǔ)引擎InnoDB的配置與使用的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03

最新評(píng)論