深入了解 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 函数连接数字

如果我们将数字作为参数传入,MySQL 会先将它们转换为字符串,然后再进行连接。

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

输出:

ConcatenatedNumber — 19105.60

示例-3:包含 NULL 值的字符串连接

这里有一个重要的特性需要注意:只要连接的参数中有一个是 NULL,最终的结果就会是 NULL

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

输出:

ConcatenatedString — NULL

示例-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 ;
StudentId

FirstName

LastName

Class

City

State

PinNo —

— 1

Sayantan

Maity

X

Kolkata

WestBengal

700001 2

Nitin

Shah

XI

Jalpaiguri

WestBengal

735102 3

Aniket

Sharma

XI

Midnapore

WestBengal

721211 4

Abdur

Ali

X

Malda

WestBengal

732101 5

Sanjoy

Sharama

X

Kolkata

WestBengal

700004

现在,我们可以使用 CONCAT 函数来拼接 FirstNameLastName 以生成全名,同时拼接 CityStatePinNo 来生成完整地址。

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

    FROM Student;

输出:

StudentId

FirstName

LastName

FullName

Address —

— 1

Sayantan

Maity

Sayantan Maity

Kolkata WestBengal 700001 2

Nitin

Shah

Nitin Shah

Jalpaiguri WestBengal 735102 3

Aniket

Sharma

Aniket Sharma

Midnapore WestBengal 721211 4

Abdur

Ali

Abdur Ali

Malda WestBengal 732101 5

Sanjoy

Sharama

Sanjoy Sharama

Kolkata WestBengal 700004
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43531.html
点赞
0.00 平均评分 (0% 分数) - 0