第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問如何在MySQL中按順序定義自定義訂單

請問如何在MySQL中按順序定義自定義訂單

婷婷同學(xué)_ 2019-08-03 03:03:20
如何在MySQL中按順序定義自定義訂單在MySQL中,如何定義自定義排序順序。為了解釋我想要的是什么,這張表:ID  Language    Text0   ENU         a0   JPN         b0   DAN         c       1   ENU         d1   JPN         e1   DAN         f2   etc...在這里,我希望返回按語言和升序ID排序的所有行,以便Language=ENU優(yōu)先,然后是JPN,最后是Dan。結(jié)果應(yīng)該是:a,d,b,e,c,f等。這可能嗎?
查看完整描述

3 回答

?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗 獲得超0個贊

如果只有三個值,則可以使用CASE表達(dá):

ORDER BY `ID`,
         CASE `Language`
         WHEN 'ENU' THEN 1
         WHEN 'JPN' THEN 2
         WHEN 'DAN' THEN 3
         END

(如果可能有其他值,那么您可能需要添加一些額外的邏輯來保持排序的一致性;例如,您可以添加ELSE 4對此CASE表達(dá)式,然后按Language作為第三種排序標(biāo)準(zhǔn):

ORDER BY `ID`,
         CASE `Language`
         WHEN 'ENU' THEN 1
         WHEN 'JPN' THEN 2
         WHEN 'DAN' THEN 3
         ELSE 4
         END,
         `Language`

)




查看完整回答
反對 回復(fù) 2019-08-04
?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗 獲得超3個贊

您可以隨意選擇幾個選項,第一個選項是將語言改為ENUM(假設(shè)這是可能的,并且您只需要幾個變體)。

如果您指定它為ENUM('ENU','JPN','DAN')然后ORDER Language ASC將按您指定的順序訂購。

第二個案件將涉及某個地方,即

SELECT * FROM tableORDER BY CASE Language    WHEN 'ENU' THEN 3
    WHEN 'JPN' THEN 2
    WHEN 'DAN' THEN 1
    ELSE 0END DESC, ID ASC

就性能而言,ENUM方法將返回更快的結(jié)果,但如果需要添加更多語言,則會更加麻煩。第三種選擇是為這些語言添加一個規(guī)范化表,但是在這種情況下,這可能會造成太大的損失。




查看完整回答
反對 回復(fù) 2019-08-04
  • 3 回答
  • 0 關(guān)注
  • 356 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號