MySQL中有哪些常用的类型转换函数

61次阅读
没有评论

共计 1561 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

本篇文章为大家展示了 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 中有哪些常用的类型转换函数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注丸趣 TV 行业资讯频道。

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1561字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)