MySQL中concat函数

在进行数据库查询时,偶尔会遇到字符串拼接的情景,我们通常会运用concat函数进行字符串的拼接。但在使用该函数时,需要注意如下细节:

拼接字符串str1、str2时,我们会如下使用:concat(str1,str2),在数据库中操作时例如:

select concat(str1,str2) from t_user;

(其中str1和str2是t_user表的两个字段),正常来说该查询语句会返回str1和str2拼接之后的值,可在实际运用过程中会出现意想不到的结果,例如:str1为null,str2为"aaa",返回的结果为null,并不是我们期待的"aaa"。

出现这种情况是因为concat函数在使用时,它会判断他的参数是否有为null的情况,只要有其中一个参数为null,则concat函数返回值就为null,上述示例如果想返回"aaa",则需要将SQL语句进行如下修改:

select concat(ifnull(str1,"defaultvalue"),str2) from t_user

这里使用了ifnull函数,该函数的用处是判断一个字段是否为null,如果为null,第二个参数则为该字段指定一个默认值。

不过,不建议在数据库中存储数据的时候不要存null值,最好是给该列设置一个默认值,因为如果某一列存在null值,则该列的创建的索引将会失效,null的查询效率低。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值