MySQL常用类型转换函数总结(推荐)
1、concat函数。
连接字符串常用:concat函数。如sql查询条件的like查询, and c.name like concat(#{param.name},'%')
将int 转为varchar经常用 concat函数,比如concat(8,'0') 得到字符串 '80'
2、cast函数;convert函数。
用法:cast(expr as type), convert(expr,type) , convert(expr using transcoding_name).
select convert('abc' using utf8);
将varchar 转为int 用 cast(str as unsigned) str为varchar类型的字符串 。
比如常用的百分比转换:
select cast((1/3)*100 as unsigned) as percent from dual;
result: 33
mysql类型转换函数参数 : cast(xxx as 类型) , convert(xxx,类型)
这个类型 可以是以下值其中的 一个:
binary[(n)]
char[(n)]
date
datetime
decimal
signed [integer]
time
unsigned [integer]
整数 : signed
无符号整数 : unsigned
二进制,同带binary前缀的效果 : binary
字符型,可带参数 : char()
日期 : date
时间: time
日期时间型 : datetime
浮点数 : decimal
mysql> select binary 'a' = 'a'; -> 0
3、if函数
mysql中if是函数而不是命令
if(expr1,expr2,expr3)
如果 expr1 为真(expr1 <> 0 以及 expr1 <> null),那么 if() 返回 expr2,否则返回 expr3。if() 返回一个数字或字符串,这取决于它被使用的语境:
mysql> select if(1>2,2,3); -> 3 mysql> select if(1<2,'yes','no'); -> 'yes' mysql> select if(strcmp('test','test1'),'no','yes'); -> 'no'
如果 expr2 或 expr3 明确地为 null,那么函数 if() 的返回值类型为非 null 列的类型。(这在选择在 mysql 4.0.3 中新加入)。 expr1 是作为一个整数值被计算的,这就意味着,如果测试的是一个浮点型或字符串值,就必须进行比较操作:
mysql> select if(0.1,1,0); -> 0 mysql> select if(0.1<>0,1,0); -> 1
在上面第一种情况下,if(0.1) 返回 0,是因为 0.1 被转换为一个整数值,返回 if(0) 的测试结果。这可能不是你所期望的。在第二种情况下,比较测试原浮点数是否为一个非零值。比较的结果被作为整数使用。 缺省的 if() 返回值类型 (当结果存储在临时表中时,这是非常重要的) 在 mysql 3.23 中按下列方式确定: 表达式 返回值
表达式(expr2)或表达式(expr3)返回值为字符串 字符串
表达式(expr2)或表达式(expr3)返回值为浮点型值 浮点型
表达式(expr2)或表达式(expr3)返回值为整型 整型
如果表达式(expr2)和表达式(expr3)均是字符串,同时两个字符串均是忽略字母大小写的,那么返回值也是忽略字母大小写的(从 mysql 3.23.51 开始)。
以上所述是小编给大家介绍的mysql常用类型转换函数总结详解整合,希望对大家有所帮助