mysql拼接字符串

1. 准备表
create table ct(
id int(10) PRIMARY KEY,
name varchar(20) UNIQUE ,
age int(3) 
)
1.1 准备数据
insert into ct (id,name,age)
values	(1,"小明1",21),
        (2,"小明2",null),
        (3,"小明3",23),
        (4,"小明4",24);

2. concat(str,str,str…)

直接拼接,如果其中一个为空,返回结果当前列为空

mysql>  select concat(id,`name`,age) from ct ;  
+-----------------------+
| concat(id,`name`,age) |
+-----------------------+
| 1小明121              |
| NULL                  |
| 3小明323              |
| 4小明424              |
+-----------------------+
4 rows in set (0.00 sec)

3. concat_ws(separator,str,str,str…)

代表 concat with separator ,是concat()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。

mysql>  select concat_ws("-",id,`name`,age) from ct ; 
+------------------------------+
| concat_ws("-",id,`name`,age) |
+------------------------------+
| 1-小明1-21                   |
| 2-小明2                      |
| 3-小明3-23                   |
| 4-小明4-24                   |
+------------------------------+
4 rows in set (0.00 sec)
3.1 有一列为空,当前查询结果并不为空
3.2 但是如果分隔符为空,当前查询结果为空

4. concat_ws(separator,str,str,str…)还可以把空进行替换
mysql>  select concat_ws('-',id,`name`,ifNULL(age,'==年龄为空了==')) from ct ;
+------------------------------------------------------------+
| concat_ws('-',id,`name`,ifNULL(age,'==年龄为空了=='))      |
+------------------------------------------------------------+
| 1-小明1-21                                                 |
| 2-小明2-==年龄为空了==                                     |
| 3-小明3-23                                                 |
| 4-小明4-24                                                 |
+------------------------------------------------------------+
4 rows in set (0.01 sec)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值