MySQL社区

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 3156|回复: 0

[SQL类] MySQL中l将字符转换成数字

[复制链接]
发表于 2014-10-22 12:10:28 | 显示全部楼层 |阅读模式

在操作mysql时,经常需要将字符转换成数字,这一步虽然简单,但不常用的话也很容易忘记,现将在网上找到的方法记录如下:


1、将字符的数字转成数字,比如'0'转成0可以直接用加法来实现

例如:将pony表中的d 进行排序,可d的定义为varchar,可以这样解决
select * from pony order by (d+0);

select '123'+0; 会把字符串‘123’转换为数字123。

SELECT 1+'1'; 会自动转换成数字类型

mysql> SELECT CAST(1 AS UNSIGNED) - 2.0;
        -> -1.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、字符集转换函数,可以用以下函数来转换:   

  • CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)
CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。
这个类型 可以是以下值其中的 一个:  


    • BINARY[(N)] 二进制,同带binary前缀的效果 : BINARY
    • CHAR[(N)] 字符型,可带参数 : CHAR()   
    • DATE
    • DATETIME
    • DECIMAL
    • SIGNED [INTEGER]
    • TIME 整数
    • UNSIGNED [INTEGER]  无符号整数
如:
SELECT CONVERT('abc' USING utf8);
SELECT CAST('2000-01-01' AS DATE);


您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周生; 联系电话:13911732319

GMT+8, 2024-3-28 19:00 , Processed in 0.065969 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表