MySQL 字母數字混合排序問題

2021-10-01 03:26:52 字數 723 閱讀 5897

資料庫有列字段

column

zz-1

tt-2

tt-19

zz-12

zz-3

zz-2

zz-9

tt-1

tt-3

tt-4

tt-5

有位小鵬友要我先按字母排序,再按數字排序,方便檢視。

顯示為:

column

tt-1

tt-2

tt-3

tt-4

tt-5

tt-19

zz-1

zz-2

zz-3

zz-9

zz-12

我這樣寫了:

order

by substring_index(

column

,'-',1

)asc

, substring_index(

column

,'-',-

1)*1

asc

說明:substring_index(被擷取字段,關鍵字,關鍵字出現的次數)。 次數為1,結果如:zz, tt

此外,關鍵字出現的次數是負數,結果從後倒數,到字串結束。次數為-1,結果如:1,19,…

MYSQL資料庫字母數字混合字段排序問題

對mysql資料表裡的乙個字元型字段排序,其內容格式為一位字母 順序數字。數字沒有前導零,長度不固定。這種含字母的數字序列,排序出來的結果和我們想要的結果是不一樣的,因為它不是純數字,只能按字元規則排。結果是a1,a10,a11,a12。a19,a2,a20,a21。而不是我們通常感覺中的a1,a2...

mysql實現數字》字母》中文》特殊字元排序

大產品就是有這麼個需求,還是將name varchar 10 的字串按從左到右逐字進行大小匹配的,如 02,003,按從左到右匹配,就是 003需要排在02前面。mysql 正常的order by是按 ascii碼 進行排序的,數字 字母 中文,這是正常排序,用order by就能實現 但特殊字元就...

PHP實現字母數字混合驗證碼功能

一款簡單的php實現字母數字混合驗證碼,支援自定義驗證碼 驗證碼 寬度 高度 個數 背景等 驗證碼呼叫位址 app程式設計客棧lication home controller codecontroller.class.php vendor vcode.vcode class.php config a...