转载自   MySQL concat()函数

在本教程中,您将学习使用MySQL CONCATCONCAT_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还提供了两个连接字符串值的函数:CONCATCONCAT_WS

MySQL CONCAT函数

MySQL CONCAT()函数需要一个或多个字符串参数,并将它们连接成一个字符串。CONCAT()函数需要至少一个参数,否则会引起错误。

下面说明了CONCAT()函数的语法。

CONCAT(string1,string2, ... );

CONCAT()函数在连接之前将所有参数转换为字符串类型。如果任何参数为NULL,则CONCAT()函数返回NULL值。

以下语句连接两个引用的字符串:MySQLCONCAT

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, ... );

第一个参数是其他参数:string1string2...的分隔符。

CONCAT_WS函数在字符串参数之间添加分隔符,并返回单个字符串,并在字符串参数之间插入分隔符。

以下语句连接两个字符串值:MaxSu,并用逗号分隔这两个字符串:

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 CONCATCONCAT_WS函数将一个或多个字符串值连接到成单个字符串。

MySQL concat()函数相关推荐

  1. mysql+concat函数问题_Mysql5.7中使用group concat函数数据被截断的问题完美解决方法...

    前天在生产环境中遇到一个问题:使用 GROUP_CONCAT函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是navicat客户端自身对字段长度做了限制的问题.后面故意重新I ...

  2. MySQL concat函数使用详解

    「作者主页」:士别三日wyx 「作者简介」:CSDN top100.阿里云博客专家.华为云享专家.网络安全领域优质创作者 「专栏简介」:此文章已录入专栏<MySQL数据库快速入门> con ...

  3. MySQL CONCAT函数:字符串拼接

    MySQL 中的 CONCAT(sl,s2,-) 函数返回结果为连接参数产生的字符串,或许有一个或多个参数. 若有任何一个参数为 NULL,则返回值为 NULL.若所有参数均为非二进制字符串,则结果为 ...

  4. [Mysql] CONCAT函数 | CONCAT_WS函数

    CONCAT函数 格式:SELECT CONCAT(str1,str2,...) FROM [表名]; 将多个字段拼接为一个字段 (字符串 str1,str2 等多个字符串合并为一个字符串,多个字符串 ...

  5. Mysql concat函数的使用

    concat函数的使用 今天在刷牛客SQL题的时候做到了一题,题目要求 将employees表的所有员工的last_name和first_name拼接起来作为Name ,看到题目我想到了concat函 ...

  6. 【数据库】Mysql的CONCAT()函数拼接字符串

    mysql CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一: mysql CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为 ...

  7. mysql中字符串拼接函数_MySQL 字符串连接CONCAT()函数

    MySQL字符串连接函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符 ...

  8. Mysql中的concat函数(拼接函数)

    概述 很多时候,我们需要将不同地方获得的字符串拼接在一起,此时就需要使用CONCAT和CONCAT_WS函数 要连接两个或多个引用的字符串值,请将字符串放在一起,如下所示: mysql> SEL ...

  9. mysql中concat函数的使用相关总结

    concat(str1,str2) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. mysql> select concat('11','22','33') ...

最新文章

  1. 网络主机监控-nagios应用漫谈(三)
  2. ESFramework介绍之(16)―― Tcp数据自动发送器ITcpAutoSender
  3. R绘图系统中的坐标系
  4. 迷宫问题---递归解决
  5. java bitset_Java BitSet nextSetBit()方法与示例
  6. 修改百度搜索结果的标题
  7. 那位全心投入本地生活的首席科学家!
  8. %set rsh=server.CreateObject(adodb.recordset)%
  9. 拓端tecdat|Python在线零售数据关联规则挖掘Apriori算法数据可视化
  10. 【FlexSim2019】仿真软件入门笔记:基本操作、快捷键、事件驱动、控制与程序
  11. 数据库课设之学生信息管理系统
  12. 什么是CDA数据分析师认证考试?
  13. 计算机网络安全的圣经-《Computer Network Security》
  14. 2014第五届蓝桥杯预赛试题本科c++史丰收速算
  15. Errors were encountered while processing
  16. 期中计算机网络答案,计算机网络基础自考试题「附答案」
  17. 推荐这几个前端公众号,助力学习前端
  18. 免费和自费的小程-序,差别究竟在哪里?
  19. 你所不知道的CMDB:CMDB起源与发展
  20. 为了圆梦黑客,大学四年自学计算机总结的经验全部无偿分享

热门文章

  1. 695.岛屿的最大面积(026)BFS
  2. c语言中注释部分二侧分界符为,C语言常见复习题(选择填空)及参考答案
  3. [Spring5]IOC容器_Bean管理XML方式_自动装配
  4. [MySQL基础]MySQL语法规范介绍
  5. C++ class实现顺序队列(完整代码)
  6. Aladdin and the Flying Carpet (素数打表+正整数的唯一分解定理,找因数对)
  7. MySql 内连接,外连接查询方式区别
  8. 观星(计算几何/凸包/多边形面积)
  9. P4239 任意模数多项式乘法逆(多项式/ MTT)
  10. CF1385E Directing Edges 拓扑序