MySQL的CONCAT()

本文介绍了在MySQL中如何使用CONCAT()和CONCAT_WS()函数进行字符串拼接。针对一道数据库题目,讨论了如何用这两个函数将employees表的last_name和first_name字段拼接成Name,中间用空格分隔。CONCAT()在有NULL值时会返回NULL,而CONCAT_WS()允许指定分隔符,并能忽略NULL值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在牛客网刷题是遇到这样的一道题觉得有必要总结一下,阐述如下:

将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分

拿到这道题一脸懵逼(数据库方面太差很多基本语法都没有了解——这也是我要写这篇博客的原因)。

当看了通过的代码以后答案是用sqlite写的(select last_name ||" "|| first_name as Name from employees)

由于出于好奇心所以就了解了一下在MySQL中是如何表示的,总结如下:

CONCAT():

使用方法:concat(str1,str2,str3,...) 返回结果为所有字符串连接在一起的值,如果有任何一个字符串为NULL返回的结果就为NULL。

select concat("a","b","c");
/*结果为abc*/
select concat("a","b",NULL)
/*结果为NULL*/

但是题目要求是要用 空格 隔开 貌似用concat()函数实现不了,那么mysql专门提供了concat_ws()函数

CONCAT_WS():

concat_ws()表示为可以用分隔符连接字符串的特殊形式的concat()函数

使用方法:concat_ws(separator,str1,str2,...)  separator:分隔符可以为字符串,也可以是其他形式的参数。

注意:当分隔符为NULL时函数返回的是NULL,当字符串为NULL函数会忽略NULL返回不是其他非NULL的连接字符串

/*当分隔符为 ‘,’ 时*/
select concat_ws(',','a','b','c'); /*结果为 a,b,c*/

/*当分隔符为 NULL 时*/
select concat_ws(NULL,'a','b','c'); /*结果为null*/

/*当字符串为NULL时*/
select concat_ws(',','a',NULL,'c'); /*结果为a,c*/

所以在上述那一道题目中用MySQL语法表示为:

select concat_ws(' ',last_name,first_name) as Name from employees

这里last_name 和 first_name 是字段名所以不用加引号。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值