MySQL concat()函数
转载自 MySQL concat()函数
在本教程中,您将学习使用MySQL CONCAT
和CONCAT_WS
函数将两个或多个字符串连接在一起的各种方法。
要连接两个或多个引用的字符串值,请将字符串放在一起,如下所示:
SELECT 'MySQL ' 'String ' 'Concatenation';
执行上面查询语句,得到以下结果 -
mysql> SELECT 'MySQL ' 'String ' 'Concatenation';
+----------------------------+
| MySQL |
+----------------------------+
| MySQL String Concatenation |
+----------------------------+
1 row in set
与其他数据库管理系统相比,MySQL字符串连接更为清晰。 例如,如果您使用PostgreSQL或Oracle,则必须使用字符串连接运算符||
。 在Microsoft SQL Server中,您可以使用加法算术运算符(+
)连接字符串值。
除了使用空格进行字符串连接之外,MySQL还提供了两个连接字符串值的函数:CONCAT
和CONCAT_WS
。
MySQL CONCAT函数
MySQL CONCAT()
函数需要一个或多个字符串参数,并将它们连接成一个字符串。CONCAT()
函数需要至少一个参数,否则会引起错误。
下面说明了CONCAT()
函数的语法。
CONCAT(string1,string2, ... );
CONCAT()
函数在连接之前将所有参数转换为字符串类型。如果任何参数为NULL
,则CONCAT()
函数返回NULL
值。
以下语句连接两个引用的字符串:MySQL
和CONCAT
。
SELECT CONCAT('MySQL','CONCAT');
执行上面查询语句,得到以下结果 -
mysql> SELECT CONCAT('MySQL','CONCAT');
+--------------------------+
| CONCAT('MySQL','CONCAT') |
+--------------------------+
| MySQLCONCAT |
+--------------------------+
1 row in set
如果添加NULL
值,则CONCAT
函数将返回一个NULL
值,如下所示:
mysql> SELECT CONCAT('MySQL',NULL,'CONCAT');
+-------------------------------+
| CONCAT('MySQL',NULL,'CONCAT') |
+-------------------------------+
| NULL |
+-------------------------------+
1 row in set
请参见示例数据库(yiibaidb)中的customers
表,其结构如下所示 -
mysql> desc customers;
+------------------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+---------------+------+-----+---------+-------+
| customerNumber | int(11) | NO | PRI | NULL | |
| customerName | varchar(50) | NO | | NULL | |
| contactLastName | varchar(50) | NO | | NULL | |
| contactFirstName | varchar(50) | NO | | NULL | |
| phone | varchar(50) | NO | | NULL | |
| addressLine1 | varchar(50) | NO | | NULL | |
| addressLine2 | varchar(50) | YES | | NULL | |
| city | varchar(50) | NO | | NULL | |
| state | varchar(50) | YES | | NULL | |
| postalCode | varchar(15) | YES | | NULL | |
| country | varchar(50) | NO | | NULL | |
| salesRepEmployeeNumber | int(11) | YES | MUL | NULL | |
| creditLimit | decimal(10,2) | YES | | NULL | |
+------------------------+---------------+------+-----+---------+-------+
13 rows in set
要获取联系人的全名,您可以使用CONCAT
函数将名字,空格,姓氏连接,如下查询语句:
SELECT concat(contactFirstName,' ',contactLastName) Fullname
FROMcustomers;
执行上面查询语句,得到以下结果 -
mysql> SELECT concat(contactFirstName,' ',contactLastName) Fullname
FROMcustomers;
+--------------------------+
| Fullname |
+--------------------------+
| Carine Schmitt |
| Jean King |
| Peter Ferguson |
| Janine Labrune |
| Jonas Bergulfsen |
***** 此处省略了一大波数据 ****
| Sue Taylor |
| Thomas Minsu |
| Valarie Franco |
| Tony Snowden |
+--------------------------+
122 rows in set
MySQL CONCAT_WS函数:使用分隔符连接字符串
MySQL提供了一种特殊形式的CONCAT()
函数:CONCAT_WS()
函数。CONCAT_WS()
函数将两个或多个字符串值与预定义的分隔符相连接。
下面说明了CONCAT_WS()
函数的语法:
CONCAT_WS(seperator,string1,string2, ... );
第一个参数是其他参数:string1
,string2
,...
的分隔符。
CONCAT_WS
函数在字符串参数之间添加分隔符,并返回单个字符串,并在字符串参数之间插入分隔符。
以下语句连接两个字符串值:Max
和Su
,并用逗号分隔这两个字符串:
SELECT CONCAT_WS(',','Max','Su');
执行上面查询语句,得到以下结果 -
mysql> SELECT CONCAT_WS(',','Max','Su');
+---------------------------+
| CONCAT_WS(',','Max','Su') |
+---------------------------+
| Max,Su |
+---------------------------+
1 row in set
当且仅当作为分隔符的第一个参数为NULL
时,CONCAT_WS
函数才返回NULL
。请参阅以下示例:
mysql> SELECT CONCAT_WS(NULL ,'Jonathan', 'Minsu');
+--------------------------------------+
| CONCAT_WS(NULL ,'Jonathan', 'Minsu') |
+--------------------------------------+
| NULL |
+--------------------------------------+
1 row in set
与CONCAT
函数不同,CONCAT_WS
函数在分隔符参数之后跳过NULL
值。 换句话说,它忽略NULL
值。
mysql> SELECT CONCAT_WS(',','Jonathan', 'Minsu',NULL);
+-----------------------------------------+
| CONCAT_WS(',','Jonathan', 'Minsu',NULL) |
+-----------------------------------------+
| Jonathan,Minsu |
+-----------------------------------------+
1 row in set
以下语句使用CONCAT_WS
函数构造完整的地址:
SELECT CONCAT_WS(CHAR(13),CONCAT_WS(' ', contactLastname, contactFirstname),addressLine1,addressLine2,CONCAT_WS(' ', postalCode, city),country,CONCAT_WS(CHAR(13), '')) AS Customer_Address
FROMcustomers;
执行上面查询语句,得到以下结果 -
+----------------------------------------------------------------------------------+
| Customer_Address |
+----------------------------------------------------------------------------------+
| Schmitt Carine
54, rue Royale
44000 Nantes
France |
************ 此处省略一大波数据 *******
在本教程中,您已经学习了如何使用MySQL CONCAT
和CONCAT_WS
函数将一个或多个字符串值连接到成单个字符串。
MySQL concat()函数相关推荐
- mysql+concat函数问题_Mysql5.7中使用group concat函数数据被截断的问题完美解决方法...
前天在生产环境中遇到一个问题:使用 GROUP_CONCAT函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是navicat客户端自身对字段长度做了限制的问题.后面故意重新I ...
- MySQL concat函数使用详解
「作者主页」:士别三日wyx 「作者简介」:CSDN top100.阿里云博客专家.华为云享专家.网络安全领域优质创作者 「专栏简介」:此文章已录入专栏<MySQL数据库快速入门> con ...
- MySQL CONCAT函数:字符串拼接
MySQL 中的 CONCAT(sl,s2,-) 函数返回结果为连接参数产生的字符串,或许有一个或多个参数. 若有任何一个参数为 NULL,则返回值为 NULL.若所有参数均为非二进制字符串,则结果为 ...
- [Mysql] CONCAT函数 | CONCAT_WS函数
CONCAT函数 格式:SELECT CONCAT(str1,str2,...) FROM [表名]; 将多个字段拼接为一个字段 (字符串 str1,str2 等多个字符串合并为一个字符串,多个字符串 ...
- Mysql concat函数的使用
concat函数的使用 今天在刷牛客SQL题的时候做到了一题,题目要求 将employees表的所有员工的last_name和first_name拼接起来作为Name ,看到题目我想到了concat函 ...
- 【数据库】Mysql的CONCAT()函数拼接字符串
mysql CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一: mysql CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为 ...
- mysql中字符串拼接函数_MySQL 字符串连接CONCAT()函数
MySQL字符串连接函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符 ...
- Mysql中的concat函数(拼接函数)
概述 很多时候,我们需要将不同地方获得的字符串拼接在一起,此时就需要使用CONCAT和CONCAT_WS函数 要连接两个或多个引用的字符串值,请将字符串放在一起,如下所示: mysql> SEL ...
- mysql中concat函数的使用相关总结
concat(str1,str2) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. mysql> select concat('11','22','33') ...
最新文章
- 网络主机监控-nagios应用漫谈(三)
- ESFramework介绍之(16)―― Tcp数据自动发送器ITcpAutoSender
- R绘图系统中的坐标系
- 迷宫问题---递归解决
- java bitset_Java BitSet nextSetBit()方法与示例
- 修改百度搜索结果的标题
- 那位全心投入本地生活的首席科学家!
- %set rsh=server.CreateObject(adodb.recordset)%
- 拓端tecdat|Python在线零售数据关联规则挖掘Apriori算法数据可视化
- 【FlexSim2019】仿真软件入门笔记:基本操作、快捷键、事件驱动、控制与程序
- 数据库课设之学生信息管理系统
- 什么是CDA数据分析师认证考试?
- 计算机网络安全的圣经-《Computer Network Security》
- 2014第五届蓝桥杯预赛试题本科c++史丰收速算
- Errors were encountered while processing
- 期中计算机网络答案,计算机网络基础自考试题「附答案」
- 推荐这几个前端公众号,助力学习前端
- 免费和自费的小程-序,差别究竟在哪里?
- 你所不知道的CMDB:CMDB起源与发展
- 为了圆梦黑客,大学四年自学计算机总结的经验全部无偿分享
热门文章
- 695.岛屿的最大面积(026)BFS
- c语言中注释部分二侧分界符为,C语言常见复习题(选择填空)及参考答案
- [Spring5]IOC容器_Bean管理XML方式_自动装配
- [MySQL基础]MySQL语法规范介绍
- C++ class实现顺序队列(完整代码)
- Aladdin and the Flying Carpet (素数打表+正整数的唯一分解定理,找因数对)
- MySql 内连接,外连接查询方式区别
- 观星(计算几何/凸包/多边形面积)
- P4239 任意模数多项式乘法逆(多项式/ MTT)
- CF1385E Directing Edges 拓扑序