MYSQL字符数字转换

来源:互联网 发布:求职网络打字员 编辑:程序博客网 时间:2024/05/20 18:18

1.
将字符的数字转成数字,比如'0'转成0可以直接用加法来实现
例如:将pony表中的d 进行排序,可d的定义为varchar,可以这样解决
select * from pony order by (d+0)
2.
在进行ifnull处理时,比如 ifnull(a/b,'0') 这样就会导致 a/b成了字符串,因此需要把'0'改成0,即可解决此困扰
3.
比较数字和varchar时,比如a=11,b="11ddddd";
则 select 11="11ddddd"相等
若绝对比较可以这样:
select binary 11 =binary "11ddddd"
4.
字符集转换 :   CONVERT(xxx  USING   gb2312)
类型转换和SQL Server一样,就是类型参数有点点不同  : CAST(xxx  AS   类型)  ,   CONVERT(xxx,类型),类型必须用下列的类型:
可用的类型    
  二进制,同带binary前缀的效果 : BINARY    
  字符型,可带参数 : CHAR()     
  日期 : DATE     
  时间: TIME     
  日期时间型 : DATETIME     
  浮点数 : DECIMAL      
  整数 : SIGNED     
  无符号整数 : UNSIGNED  

 

 

有好多种方法吧,我先说3种:

1,使用 CAST() : (需要统一小数位)

  
  1. select CAST('1.50 (kg)' as DECIMAL(8,2));   -- 1.50

2,使用replace:

  
  1. select replace('1.50 (kg)',' (kg)','');   -- 1.50

3,利用运算:(会丢失精度)

  
  1. select '1.50 (kg)' + 0;   -- 1.5

根据自己的实际情况选择。