MySQL CONCAT函数
简介:在本教程中,您将学习使用MySQL CONCAT和CONCAT_WS函数将两个或多个字符串连接在一起的各种方法。
要连接两个或多个带引号的字符串值,请按照以下语法将字符串彼此相邻放置:
SELECT 'MySQL ' 'String ' 'Concatenation';
与其他数据库管理系统相比,MySQL字符串连接更干净。
例如,如果使用PostgreSQL或Oracle,则必须使用字符串串联运算符||。
在Microsoft SQL Server中,您使用加法算术运算符(+)来连接字符串值。
除了使用空格进行字符串连接外,MySQL还提供了另外两个用于连接字符串值的函数:CONCAT和CONCAT_WS。
MySQL CONCAT函数
MySQL CONCAT函数接受一个或多个字符串参数,并将它们连接成一个字符串。
CONCAT函数至少需要一个参数,否则会引发错误。
下面说明了CONCAT函数的语法。
CONCAT(string1,string2, ... );
CONCAT函数在连接之前将所有参数转换为字符串类型。
如果任何参数为NULL,则CONCAT函数将返回NULL值。
以下语句连接两个带引号的字符串:MySQL和CONCAT。
SELECT CONCAT('MySQL','CONCAT');
如果添加NULL值,则CONCAT函数将返回NULL值,如下所示:
SELECT CONCAT('MySQL',NULL,'CONCAT');
请参阅示例数据库中的以下客户表。
要获取联系人的全名,可以使用CONCAT函数将名字,空格和姓氏连接起来,如下所示:
SELECT concat(contactFirstName,' ',contactLastName) Fullname FROM customers;
MySQL CONCAT_WS函数:用分隔符连接字符串
MySQL提供了CONCAT函数的一种特殊形式:CONCAT_WS函数。
CONCAT_WS函数使用预定义的分隔符将两个或多个字符串值连接在一起。
下面说明了CONCAT_WS函数的语法:
CONCAT_WS(seperator,string1,string2, ... );
第一个参数是其他参数的分隔符:string1,string2,…
CONCAT_WS函数在字符串参数之间添加分隔符,并返回单个字符串,并在字符串参数之间插入分隔符。
以下语句连接两个字符串值:John和Doe,并用逗号分隔这两个字符串:
SELECT CONCAT_WS(',','John','Doe');
当且仅当第一个参数(即分隔符)为NULL时,CONCAT_WS函数才返回NULL。
请参见以下示例:
SELECT CONCAT_WS(NULL ,'Jonathan', 'Smith');
与CONCAT函数不同,CONCAT_WS函数在分隔符参数之后跳过NULL值。
换句话说,它忽略NULL值。
SELECT CONCAT_WS(',','Jonathan', 'Smith',NULL);
以下语句使用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;
输出结果如下:
Customer_Address --------------------------------------------------- Schmitt Carine 54, rue Royale 44000 Nantes France King Jean 8489 Strong St. 83030 Las Vegas USA ...
在本教程中,您学习了如何使用MySQL CONCAT和CONCAT_WS函数将一个或多个字符串值连接为单个字符串。