目录
简介
在 MySQL 中,CONCAT() 函数是一个非常实用的工具,用于将传入的参数连接成一个字符串。我们可以向它传递一个或多个参数。根据传入参数的类型,结果会有所不同:如果所有参数都是非二进制字符串,结果将是一个非二进制字符串;如果参数中包含任何二进制字符串,结果则是一个二进制字符串。此外,如果我们传入的是数字参数,它会自动被转换为其等效的非二进制字符串形式。
语法:
CONCAT(str1, str2, ...)
参数说明
这个方法接受 N 个参数:
- str1, str2, str3…. : 我们想要进行连接的输入字符串。
返回值
该函数会将所有输入字符串连接后返回一个新的字符串。需要注意的是,如果输入字符串中包含 NULL,它将直接返回 NULL。
示例-1:使用 CONCAT 函数连接 3 个字符串
在这个例子中,让我们看看如何将三个字符串拼接在一起。
SELECT CONCAT(‘geeks‘, ‘for‘, ‘geeks‘) AS ConcatenatedString ;
输出:
示例-2:使用 CONCAT 函数连接数字
如果我们将数字作为参数传入,MySQL 会先将它们转换为字符串,然后再进行连接。
SELECT CONCAT(19, 10, 5.60) AS ConcatenatedNumber ;
输出:
示例-3:包含 NULL 值的字符串连接
这里有一个重要的特性需要注意:只要连接的参数中有一个是 NULL,最终的结果就会是 NULL。
SELECT CONCAT(‘geeks‘, ‘for‘, ‘geeks‘, NULL) AS ConcatenatedString ;
输出:
示例-4:在实际表数据中使用 CONCAT 函数
在这个实战练习中,我们将演示如何连接表中的列。首先,让我们创建一个名为 Student 的表。
CREATE TABLE Student(
StudentId INT AUTO_INCREMENT,
FirstName VARCHAR(100) NOT NULL,
LastName VARCHAR(100) NOT NULL,
Class VARCHAR(20) NOT NULL,
City VARCHAR(20) NOT NULL,
State VARCHAR(20) NOT NULL,
PinNo INT NOT NULL,
PRIMARY KEY(StudentId )
);
接下来,我们向 Student 表中插入一些演示数据:
INSERT INTO
Student(FirstName, LastName, Class, City, State, PinNo )
VALUES
(‘Sayantan‘, ‘Maity‘, ‘X‘, ‘Kolkata‘, ‘WestBengal‘, 700001 ),
(‘Nitin‘, ‘Shah‘, ‘XI‘, ‘Jalpaiguri‘, ‘WestBengal‘, 735102 ),
(‘Aniket‘, ‘Sharma‘, ‘XI‘, ‘Midnapore‘, ‘WestBengal‘, 721211 ),
(‘Abdur‘, ‘Ali‘, ‘X‘, ‘Malda‘, ‘WestBengal‘, 732101 ),
(‘Sanjoy‘, ‘Sharama‘, ‘X‘, ‘Kolkata‘, ‘WestBengal‘, 700004 ) ;
让我们先查看一下表中的数据:
Select * From Student ;
FirstName
Class
State
—
—
—
Sayantan
X
WestBengal
Nitin
XI
WestBengal
Aniket
XI
WestBengal
Abdur
X
WestBengal
Sanjoy
X
WestBengal
现在,我们可以使用 CONCAT 函数来拼接 FirstName 和 LastName 以生成全名,同时拼接 City、State 和 PinNo 来生成完整地址。
Select
StudentId, FirstName, LastName,
CONCAT(FirstName, ‘ ‘, LastName) AS FullName,
CONCAT(City, ‘ ‘, State, ‘ ‘, PinNO) AS Address
FROM Student;
输出:
FirstName
FullName
—
—
Sayantan
Sayantan Maity
Nitin
Nitin Shah
Aniket
Aniket Sharma
Abdur
Abdur Ali
Sanjoy
Sanjoy Sharama