0
給定一組字母{A,AA,B,BB,C,CC,BBB}的MySQL,排序單個字母第一,然後雙字母,那麼三字母
我想將它們由單一第一階字母,然後是雙字母,然後是三字母。在這個構造中,我希望它們按字母順序排列。
例子: a,b,c,aa,bb,cc,bbb
對於我的使用情況下,將只上升到3個字母。有任何想法嗎?
給定一組字母{A,AA,B,BB,C,CC,BBB}的MySQL,排序單個字母第一,然後雙字母,那麼三字母
我想將它們由單一第一階字母,然後是雙字母,然後是三字母。在這個構造中,我希望它們按字母順序排列。
例子: a,b,c,aa,bb,cc,bbb
對於我的使用情況下,將只上升到3個字母。有任何想法嗎?
爲您提供,你可以使用長度數據:
order by length(letters),
letters;
這假定字母如問題所述,在此之後的其他字母。
如果這些前綴,蠻力的方法是:
order by ((substring(letters, 1, 1) = substring(letters, 2, 1)) +
(substring(letters, 1, 1) = substring(letters, 3, 1)
), letters;
也就是說,最初的字符比較下兩個。當第一和第二字符不同時,上述返回0
; 1
,當第一個和第二個是相同的,但第三個不同;和三個字符前綴2
。