📜  MySQL 中的 CONCAT()函数

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

MySQL 中的 CONCAT()函数

MySQL 中的CONCAT()函数用于连接给定的参数。它可能有一个或多个参数。如果所有参数都是非二进制字符串,则结果为非二进制字符串。如果参数包含任何二进制字符串,则结果为二进制字符串。如果给出了数字参数,则将其转换为其等效的非二进制字符串形式。

句法 :

CONCAT(str1, str2, ...)

参数:此方法接受 N 个参数。

  • str1, str2.str3.... :我们要连接的输入字符串。

返回:连接所有输入字符串。如果任何输入字符串为 NULL,则返回 NULL。

示例-1:
使用 CONCAT函数连接 3 个字符串。

SELECT CONCAT('geeks', 'for', 'geeks') AS ConcatenatedString ;

输出 :

ConcatenatedString
geeksforgeeks

示例 2 :
使用 CONCAT函数连接数字字符串。

SELECT CONCAT(19, 10, 5.60) AS ConcatenatedNumber ;

输出 :

ConcatenatedNumber
19105.60

示例 3 :
使用 CONCAT函数连接包含 NULL字符串的字符串。

SELECT CONCAT('geeks', 'for', 'geeks', NULL) AS ConcatenatedString ;

输出 :

ConcatenatedString
NULL

示例 4:
在这个例子中,我们将在表的列之间连接字符串。为了演示创建一个名为 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 ;
StudentIdFirstNameLastNameClassCityStatePinNo
1SayantanMaityXKolkataWestBengal700001
2NitinShahXIJalpaiguriWestBengal735102
3AniketSharmaXIMidnaporeWestBengal721211
4AbdurAliXMaldaWestBengal732101
5SanjoySharamaXKolkataWestBengal700004

现在,我们将连接 FirstName 和 LastName 以获取 FullName 和 City、State 和 PinNo 以使用 CONCAT 函数获取地址。

Select 
    StudentId, FirstName, LastName, 
    CONCAT(FirstName, ' ', LastName) AS FullName,
    CONCAT(City, ' ', State, ' ', PinNO) AS Address

    FROM Student;    

输出 :

StudentIdFirstNameLastNameFullNameAddress
1SayantanMaitySayantan MaityKolkata WestBengal 700001
2NitinShahNitin ShahJalpaiguri WestBengal 735102
3AniketSharmaAniket SharmaMidnapore WestBengal 721211
4AbdurAliAbdur AliMalda WestBengal 732101
5SanjoySharamaSanjoy SharamaKolkata WestBengal 700004