mysql—从字符串中提取数字(类型1)
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
生活其实也很简单,喜欢的就去争取、得到的就珍惜、失去的就忘记。