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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM