深入MYSQL字符数字转换的详解
程序员文章站
2024-02-23 20:48:58
1.将字符的数字转成数字,比如'0'转成0可以直接用加法来实现例如:将pony表中的d 进行排序,可d的定义为varchar,可以这样解决select * from pon...
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
例如:将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