MySql varchar排序,添減 CAST ,CONVERT

MySql varchar排序,加減 CAST ,CONVERT

 

 

 

 

在工作中碰到了不知道什么人设计的表,有几列数字值的字段属性竟然设置成了varchar,现在想做数字加減操作,很是麻烦,后来找到了三种方法。

假如表结构如下
id(int)       a(varchar)
1                  1
2                  2
3                  10
4                  20
5                  3
6                  30

第一种,cast
用法:cast(字段 as 数据类型)       [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
实例:select cast(a as unsigned) from cardserver where game_id = 1 order by id desc;

第二种,convert
用法:convert(字段,数据类型)
实例:
select convert (a ,unsigned) from cardserver where game_id = 1 order by id desc;

第三种,加減0法
用法:字段加0或减0操作   [在MYSQL中,
varchar加减数字就会自动转换为数字操作]
实例:
select a+0  from cardserver where game_id = 1 order by id desc;