📜  MySQL 中的 CONCAT_WS()函数

📅  最后修改于: 2022-05-13 01:55:40.174000             🧑  作者: Mango

MySQL 中的 CONCAT_WS()函数

CONCAT_WS() :
MySQL 中的这个函数有助于连接两个或多个字符串以及一个分隔符。分隔符必须由用户指定,也可以是字符串。如果分隔符为 NULL,则结果也将为 NULL。

句法 :

CONCAT_WS(separator, string1, string2, ...)

参数 :

  • 分隔器 -
    将在连接 string1、string2 等时在字符串之间添加的分隔符。
  • [string1, string2 …] –
    需要连接的输入字符串。

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

示例 1:
使用 CONCAT_WS函数连接 2 个字符串,如下所示。

SELECT CONCAT_WS(": ", "Geek ", "Vansh ") AS ConcatWsStr;

输出 :

ConcatWsStr
Geek : Vansh

示例 2 :
使用 CONCAT_WS函数连接 3 个字符串,如下所示。

SELECT CONCAT_WS("@ ", "Geek ", "Vansh ", 13 ) AS ConcatWsStr;

输出 :

ConcatWsStr
Geek @ Vansh @ 13

示例 3 :
使用 NULL 分隔符连接 NULL字符串,如下所示。

SELECT CONCAT_WS(NULL, NULL, "Vansh ", 13 ) AS ConcatWsStr;

输出 :

ConcatWsStr
NULL

示例 4:
使用 CONCAT_WS函数连接表的列,如下所示。

创建员工表:

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_IdFirstNameLastNameResidenceSalary
1AnimeshGargDelhi70000
2NeshuSharmaNepal73000
3AryanSharmaWestBengal72000
4AbdulAliDelhi73000
5SeemSharmaBihar70000

现在,使用“_”作为分隔符连接给定 Emp 表的 FirstName 和 LastName,以形成一个新列作为 FullName。

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

输出 :

FullName
Animesh_Garg
Neshu_Sharma
Aryan_Sharma
Abdul_Ali
Seema_Sharma