MySQL常用类型转换函数总结(推荐)
1、Concat函数。
连接字符串常用:concat函数。如sql查询条件的like查询, ANDc.namelikeconcat(#{param.name},'%')
将Int转为varchar经常用concat函数,比如concat(8,'0')得到字符串'80'
2、Cast函数;CONVERT函数。
用法:CAST(exprAStype),CONVERT(expr,type),CONVERT(exprUSINGtranscoding_name).
SELECTCONVERT('abc'USINGutf8);
将varchar转为Int用cast(strasunsigned)str为varchar类型的字符串。
比如常用的百分比转换:
selectcast((1/3)*100asUNSIGNED)aspercentfromdual;
result:33
MySQL类型转换函数参数:CAST(xxxAS类型),CONVERT(xxx,类型)
这个类型可以是以下值其中的一个:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL
SIGNED[INTEGER]
TIME
UNSIGNED[INTEGER]
整数:SIGNED
无符号整数:UNSIGNED
二进制,同带binary前缀的效果:BINARY
字符型,可带参数:CHAR()
日期:DATE
时间:TIME
日期时间型:DATETIME
浮点数:DECIMAL
mysql>SELECTBINARY'a'='A'; ->0
3、IF函数
mysql中if是函数而不是命令
IF(expr1,expr2,expr3)
如果expr1为真(expr1<>0以及expr1<>NULL),那么IF()返回expr2,否则返回expr3。IF()返回一个数字或字符串,这取决于它被使用的语境:
mysql>SELECTIF(1>2,2,3); ->3 mysql>SELECTIF(1<2,'yes','no'); ->'yes' mysql>SELECTIF(STRCMP('test','test1'),'no','yes'); ->'no'
如果expr2或expr3明确地为NULL,那么函数IF()的返回值类型为非NULL列的类型。(这在选择在MySQL4.0.3中新加入)。expr1是作为一个整数值被计算的,这就意味着,如果测试的是一个浮点型或字符串值,就必须进行比较操作:
mysql>SELECTIF(0.1,1,0); ->0 mysql>SELECTIF(0.1<>0,1,0); ->1
在上面第一种情况下,IF(0.1)返回0,是因为0.1被转换为一个整数值,返回IF(0)的测试结果。这可能不是你所期望的。在第二种情况下,比较测试原浮点数是否为一个非零值。比较的结果被作为整数使用。缺省的IF()返回值类型(当结果存储在临时表中时,这是非常重要的)在MySQL3.23中按下列方式确定:表达式返回值
表达式(expr2)或表达式(expr3)返回值为字符串字符串
表达式(expr2)或表达式(expr3)返回值为浮点型值浮点型
表达式(expr2)或表达式(expr3)返回值为整型整型
如果表达式(expr2)和表达式(expr3)均是字符串,同时两个字符串均是忽略字母大小写的,那么返回值也是忽略字母大小写的(从MySQL3.23.51开始)。
以上所述是小编给大家介绍的MySQL常用类型转换函数总结详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!