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

原文地址:https://www.cnblogs.com/Formulate0303/p/13784294.html