MySQL CONCAT() 函数



MySQL 的CONCAT() 函数用于将两个或多个字符串连接成一个字符串。

它接受两个或多个字符串值作为输入,并通过按提供的顺序连接所有输入字符串来返回一个字符串。

  • 如果我们提供非二进制字符串作为输入,它将返回非二进制字符串作为输出。

  • 如果我们提供二进制字符串作为输入,它将返回二进制字符串作为输出。

  • 如果我们提供数值作为输入,则将其转换为等效的非二进制字符串形式。

在处理 MySQL 表时,此函数在各种场景中都很有用,例如将一个人的名字和姓氏组合成全名,将字符串与分隔符(如“ ”、“-”、“(”等)连接起来。

语法

以下是 MySQL CONCAT() 函数的语法:

CONCAT(str1,str2,...)

参数

此函数接受多个字符串值作为参数。

返回值

此函数返回给定字符串值的连接结果,将它们组合成一个字符串。

示例

在此示例中,我们使用 CONCAT() 函数连接两个字符串“tutorials”和“point”:

SELECT CONCAT('tutorials', 'point');

以下是上述代码的输出:

CONCAT('tutorials', 'point')
tutorialspoint

示例

以下是一个其他示例,其中我们只向 CONCAT() 函数传递一个参数:

SELECT CONCAT('test');

上述代码的输出如下所示:

CONCAT('test')
test

示例

您也可以通过传递两个以上参数来连接:

SELECT CONCAT('Shyam', 'Singa', 'Roy');

获得的输出如下所示:

CONCAT('Shyam', 'Singa', 'Roy')
ShyamSingaRoy

示例

如果将二进制字符串作为参数传递给此函数,它将返回一个二进制字符串:

SELECT CONCAT('110110', '1100110');

产生的结果如下:

CONCAT('110110', '1100110')
1101101100110

示例

同样,如果将非二进制值作为参数传递,它将返回一个非二进制字符串:

SELECT CONCAT('sample', 'test');

我们得到如下输出:

CONCAT('sample', 'test')
sampletest

示例

您还可以组合二进制和非二进制值,并将其作为参数传递给此函数:

SELECT CONCAT('sample', 1010011);

获得的输出如下所示:

CONCAT('sample', 1010011)
sample1010011

示例

当您将数值作为参数传递时,CONCAT() 函数会将其转换为等效的非二进制字符串形式:

SELECT CONCAT(1125, 225, 669);

产生的结果如下:

CONCAT(1125, 225, 669)
1125225669

示例

如果将空字符串作为参数传递给 CONCAT() 函数,它将返回“0”:

SELECT CONCAT('');

我们得到如下输出:

CONCAT('')
0

示例

如果传递给 CONCAT() 函数的参数之一为 NULL,则结果也将为 NULL:

SELECT CONCAT(1125, 225, NULL);

以下是上述代码的输出:

CONCAT(1125, 225, NULL)
NULL

示例

您还可以将表的列名作为参数传递给此函数,并连接/组合给定列中的值。

让我们创建一个名为“PLAYERS”的表,并使用 CREATE 和 INSERT 语句向其中插入记录,如下所示:

CREATE TABLE PLAYERS(
   ID INT,
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Date_Of_Birth date,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255),
   PRIMARY KEY (ID)
);

现在,让我们使用 INSERT 语句向其中插入记录:

INSERT INTO PLAYERS VALUES
(1, 'Shikhar', 'Dhawan', DATE('1981-12-05'), 'Delhi', 'India'),
(2, 'Jonathan', 'Trott', DATE('1981-04-22'), 'CapeTown', 'SouthAfrica'),
(3, 'Kumara', 'Sangakkara', DATE('1977-10-27'), 'Matale', 'Srilanka'),
(4, 'Virat', 'Kohli', DATE('1988-11-05'), 'Delhi', 'India'),
(5, 'Rohit', 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India'),
(6, 'James', 'Anderson', DATE('1982-06-30'), 'Burnley', 'England');

获得的 PLAYERS 表如下所示:

ID First_Name Last_Name Date_Of_Birth Place_Of_Birth Country
1 Shikhar Dhawan 1981-12-05 Delhi India
2 Jonathan Trott 1981-04-22 CapeTown SouthAfrica
3 Kumara Sangakkara 1977-10-27 Matale Srilanka
4 Virat Kohli 1988-11-05 Delhi India
5 Rohit Sharma 1987-04-30 Nagpur India
6 James Anderson 1982-06-30 Burnley England

以下查询连接/组合 PLAYERS 表的 First_Name 和 Last_Name 值,并将结果显示为 FullName:

SELECT CONCAT (First_Name, Last_Name) as FullName, Country 
FROM PLAYERS;

输出

执行上述代码后,我们将获得以下输出:

FullName Country
ShikharDhawan India
JonathanTrott SouthAfrica
KumaraSangakkara Srilanka
ViratKohli India
RohitSharma India
JamesAnderson England

示例

在这里,我们使用以下查询连接两个以上的列,即“First_name”、“Last_name”和“Country”:

SELECT CONCAT (First_Name, " ", Last_Name, " ", Country) as FullName_and_Country
FROM PLAYERS;

输出

显示的输出如下所示:

FullName_and_Country
Shikhar Dhawan India
Jonathan Trott SouthAfrica
Kumara Sangakkara Srilanka
Virat Kohli India
Rohit Sharma India
James Anderson England
mysql-concat-function.htm
广告