select reason,CHAR_LENGTH(reason),mid(reason,5,CHAR_LENGTH(reason)-5)+0 from `table`
解釋:
CHAR_LENGTH(字符串) #計算字符串長度
mid(字符串,5,CHAR_LENGTH(reason)-5) #從字符串第5位開始截取,截取長度為 字符串長度-5,結果是字符串不是數值
PS:所以,記得把字符串結果轉為數值。否則,在字符串中,max()比較12 2誰最大的時候,結果會選擇2 而不是12
mysql將字符串轉成數字
今天寫sql語句時,相對字符串類型的數字進行排序,怎么做呢?
需要先轉換成數字再進行排序
1.直接用加法
字符串+0
eg:
select * from orders order by (mark+0) desc
2.使用函數
CAST(value as type);
CONVERT(value, type);
注:
這里的type可以為:
浮點數 : DECIMAL
整數 : SIGNED
無符號整數 : UNSIGNED
eg:
select * from orders order by CONVERT(mark,SIGNED) desc
select * from orders order by CAST(mark as SIGNED) desc