MySQL 基础教程

MySQL 高级教程

MySQL SQL 语句

MySQL 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/mysql-func-concat_ws.html

MySQL CONCAT_WS 字符串连接函数用法使用详解

MySQL 内置函数及自定义函数详解 MySQL 内置函数及自定义函数详解


MySQL 的 CONCAT_WS 函数将多个字符串按照指定的分隔符连接在一起,和 CONCAT 函数功能相似,只不过多了一个可以指定的连接符(分隔符)。分隔符可以是一个字符串,用来分隔其余参数。如果分隔符是 NULL,则最终结果也为 NULL(不管其他字符串是什么)。

语法

语句如下:

CONCAT_WS(separator, expression1, expression2, expression3,...)

参数:

  • separator:指定分隔符,必需的,在每个表达式之间添加的分隔符。如果分隔符为 NULL,则此函数返回 NULL
  • expression1, expression2, expression3, ...:必需的。要加在一起的表达式。将跳过具有 NULL 值的表达式。

返回:

它将在连接所有指定的字符串后,返回一个新字符串,以及指定的分隔符。如果所有输入字符串均为 NULL,则结果将为 NULL。如果分隔符为 NULL,它将返回 NULL

CONCAT_WS 函数从 MySQL 4.0 版本开始支持。

示例

使用 CONCAT_WS 函数连接两个字符串,示例如下:

mysql> SELECT CONCAT_WS(',', 'First name', ' Last Name');
+---------------------------------------------------------+
| CONCAT_WS(',', 'First name', ' Last Name')              |
+---------------------------------------------------------+
| First name, Last Name                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

连接三个字符串,示例如下:

SELECT CONCAT_WS("@ ", "Knowledge ", "Dict ", 13 ) AS ConcatWsStr;

输出如下:

+---------------------------------------------------------+
| ConcatWsStr                                             |
+---------------------------------------------------------+
| Knowledge @ Dict @ 13                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

NULL 分隔符连接字符串,如下:

mysql> SELECT CONCAT_WS(NULL, 'First name', 'Last Name');
+---------------------------------------------------------+
| CONCAT_WS(',', 'First name', 'Last Name')               |
+---------------------------------------------------------+
| NULL                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

连接带有 NULL 的字符串,NULL 值则忽略,如下:

mysql> SELECT CONCAT_WS(',', NULL, 'Last Name');
+---------------------------------------------------------+
| CONCAT_WS(',', 'First name', 'Last Name')               |
+---------------------------------------------------------+
| Last Name                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

使用 CONCAT_WS 连接数据库表中的字段,具体如下:

创建一个 Emp 表:

CREATE TABLE Emp(
Employee_Id INT AUTO_INCREMENT,  
FirstName VARCHAR(100) NOT NULL,
LastName VARCHAR(100) NOT NULL,
Residence VARCHAR(50) NOT NULL,
Salary INT  NOT NULL,
PRIMARY KEY(Employee_Id )
);

插入如下数据:

INSERT INTO Emp(FirstName, LastName, Residence, Salary )
VALUES
('Animesh', 'Garg', 'Delhi', 70000 ),
('Neshu', 'Sharma', 'Nepal', 73000 ),
('Aryan', 'Sharma', 'WestBengal', 72000 ),
('Abdul', 'Ali', 'Delhi', 73000 ),
('Seema', 'Sharma', 'Bihar', 70000 ) ;

表数据当前如下:

Select * From Emp;
Employee_Id	FirstName	LastName	Residence	Salary
1	        Animesh	    Garg	    Delhi	    70000
2	        Neshu	    Sharma	    Nepal	    73000
3	        Aryan	    Sharma	    WestBengal	72000
4	        Abdul	    Ali	        Delhi	    73000
5	        Seem	    Sharma	    Bihar	    70000

现将 FirstNameLastName 通过连接符号 _ 变成一个新的字段:

SELECT CONCAT_WS('_', FirstName,  LastName) AS FullName From Emp;

结果如下:

+------------------------------------------------+
| FullName                                       |
+------------------------------------------------+
| Animesh_Garg                                   |
+------------------------------------------------+
| Neshu_Sharma                                   |
+------------------------------------------------+
| Aryan_Sharma                                   |
+------------------------------------------------+
| Abdul_Ali                                      |
+------------------------------------------------+
| Seema_Sharma                                   |
+------------------------------------------------+
Hive SQL 中将字符串拼接的函数是 CONCAT,它返回指定参数的连接字符串,此函数可以接受任意数量的输入字符串。 ...
Hive SQL 的 CONCAT_WS 函数,类似 CONCAT 函数,它连接多个指定的参数也可以串联字符串数组,可以自定义分隔符(从函数 ...
MySQL 的 GROUP_CONCAT() 内置聚合函数,将 GROUP BY 产生的同一个分组中的值连接起来,返回一个字符串结果。 ...
本章节我们为大家介绍 Java 如何使用 使用 JDBC 连接 MySQL 数据库。 ...
MySQL 的日期内置函数 date_sub() 作用是从指定的日期减去指定时间间隔,它接收两个参数,第一个是指定的日期,常用当前日期,第二 ...