MySQL CONCAT Function

摘要:在本教程中,您将学习使用 MySQL CONCAT 和 CONCAT_WS 函数将两个或多个字符串连接在一起的各种方法。

要连接两个或多个带引号的字符串值,请将字符串彼此相邻放置,语法如下:

SELECT 'MySQL ' 'String ' 'Concatenation';Code language: SQL (Structured Query Language) (sql)

试试看

MySQL string concatenation

与其他数据库管理系统相比,MySQL 字符串连接更加清晰。例如,如果您使用PostgreSQL或 Oracle,则必须使用字符串连接运算符 ||。在 Microsoft SQL Server 中,您可以使用加法算术运算符 (+) 来连接字符串值。

除了使用空格进行字符串连接之外,MySQL 还提供了另外两个连接字符串值的函数: CONCATCONCAT_WS

MySQL CONCAT 函数

MySQL CONCAT函数接受一个或多个字符串参数并将它们连接成一个字符串。 CONCAT函数至少需要一个参数,否则会引发错误。

下面说明了CONCAT函数的语法。

CONCAT(string1,string2, ... );Code language: SQL (Structured Query Language) (sql)

CONCAT函数在连接之前将所有参数转换为字符串类型。如果任何参数为NULL ,则CONCAT函数返回NULL值。

以下语句连接两个带引号的字符串: MySQLCONCAT

SELECT CONCAT('MySQL','CONCAT');Code language: SQL (Structured Query Language) (sql)

试试看

MySQL CONCAT Quoted Strings

如果添加NULL值, CONCAT函数将返回NULL值,如下所示:

SELECT CONCAT('MySQL',NULL,'CONCAT');Code language: SQL (Structured Query Language) (sql)

试试看

MySQL CONCAT 与 NULL 值

请参阅示例数据库中的以下customers表。

要获取联系人的全名,请使用CONCAT函数连接名字、空格、姓氏,如下语句:

SELECT 
    concat(contactFirstName,' ',contactLastName) Fullname
FROM
    customers;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL CONCAT example

MySQL CONCAT_WS 函数:用分隔符连接字符串

MySQL提供了一种特殊形式的CONCAT函数: CONCAT_WS函数。 CONCAT_WS函数使用预定义的分隔符连接两个或多个字符串值。

下面说明了CONCAT_WS函数的语法:

CONCAT_WS(seperator,string1,string2, ... );Code language: SQL (Structured Query Language) (sql)

第一个参数是其他参数的分隔符:string1、string2、...

CONCAT_WS函数在字符串参数之间添加分隔符,并返回在字符串参数之间插入分隔符的单个字符串。

以下语句连接两个字符串值:John 和 Doe,并用逗号分隔这两个字符串:

SELECT CONCAT_WS(',','John','Doe');Code language: SQL (Structured Query Language) (sql)

试试看

MySQL CONCAT_WS 示例

当且仅当第一个参数(即分隔符)为NULL时, CONCAT_WS函数才返回NULL 。请参见以下示例:

SELECT CONCAT_WS(NULL ,'Jonathan', 'Smith');Code language: SQL (Structured Query Language) (sql)

试试看

MySQL CONCAT_WS function with NULL separator

CONCAT函数不同, CONCAT_WS函数会跳过分隔符参数后面的NULL值。换句话说,它忽略 NULL 值。

SELECT CONCAT_WS(',','Jonathan', 'Smith',NULL);Code language: SQL (Structured Query Language) (sql)

试试看

MySQL CONCAT_WS function with NULL argument

以下语句使用CONCAT_WS函数构造完整地址:

 SELECT 
    CONCAT_WS(CHAR(13),
            CONCAT_WS(' ', contactLastname, contactFirstname),
            addressLine1,
            addressLine2,
            CONCAT_WS(' ', postalCode, city),
            country,
            CONCAT_WS(CHAR(13), '')) AS Customer_Address
FROM
    customers;Code language: SQL (Structured Query Language) (sql)

试试看

这是输出结果:

Customer_Address                                   
---------------------------------------------------
Schmitt Carine                                     
54, rue Royale                                     
44000 Nantes                                       
France                                             

King Jean                                          
8489 Strong St.                                    
83030 Las Vegas                                    
USA

...Code language: SQL (Structured Query Language) (sql)

在本教程中,您学习了如何使用 MySQL CONCATCONCAT_WS函数将一个或多个字符串值连接成单个字符串。

本教程有帮助吗?