很多时候,我们需要将不同地方获得的字符串拼接在一起,此时就需要使用CONCAT
和CONCAT_WS
函数
要连接两个或多个引用的字符串值,请将字符串放在一起,如下所示:
mysql> SELECT "MySQL " "String " "Concatenation"; +----------------------------+ | MySQL | +----------------------------+ | MySQL String Concatenation | +----------------------------+ 1 row in set
除了使用空格进行字符串连接之外,mysql还提供了两个连接字符串值的函数CONCAT
和CONCAT_WS
Mysql Concat
函数需要一个或多个字符串参数,并将他们连接成一个字符串。CONCAT()
函数需要至少一个参数,否则会引起报错。
CONCAT(string1,string2, ... );
CONCAT()函数在连接之前将所有参数转换为字符串类型。如果任何参数为NULL
,则CONCAT()
函数返回NULL
值。
mysql> SELECT CONCAT("MySQL","CONCAT"); +--------------------------+ | CONCAT("MySQL","CONCAT") | +--------------------------+ | MySQLCONCAT | +--------------------------+ 1 row in set
如果是添加NULL
值,则CONCAT
函数将会返回一个NULL
值;
mysql> SELECT CONCAT("MySQL",NULL,"CONCAT"); +-------------------------------+ | CONCAT("MySQL",NULL,"CONCAT") | +-------------------------------+ | NULL | +-------------------------------+ 1 row in set
MySQL提供了一种特殊形式的CONCAT()
函数:CONCAT_WS()
函数。CONCAT_WS()
函数将两个或多个字符串值与预定义的分隔符相连接。
下面说明了CONCAT_WS()
函数的语法:
CONCAT_WS(seperator,string1,string2, ... );
第一个参数是其他参数:string1
,string2
,...
的分隔符。
CONCAT_WS
函数在字符串参数之间添加分隔符,并返回单个字符串,并在字符串参数之间插入分隔符。
以下语句连接两个字符串值:Max
和Su
,并用逗号分隔这两个字符串:
SELECT CONCAT_WS(",","Max","Su"); SQL
执行上面查询语句,得到以下结果 -
mysql> SELECT CONCAT_WS(",","Max","Su"); +---------------------------+ | CONCAT_WS(",","Max","Su") | +---------------------------+ | Max,Su | +---------------------------+ 1 row in set Shell
当且仅当作为分隔符的第一个参数为NULL
时,CONCAT_WS
函数才返回NULL
。
mysql> SELECT CONCAT_WS(NULL ,"Jonathan", "Minsu"); +--------------------------------------+ | CONCAT_WS(NULL ,"Jonathan", "Minsu") | +--------------------------------------+ | NULL | +--------------------------------------+ 1 row in set
与CONCAT
函数不同,CONCAT_WS
函数在分隔符参数之后跳过NULL
值。 换句话说,它忽略NULL
值
mysql> SELECT CONCAT_WS(",","Jonathan", "Minsu",NULL); +-----------------------------------------+ | CONCAT_WS(",","Jonathan", "Minsu",NULL) | +-----------------------------------------+ | Jonathan,Minsu | +-----------------------------------------+ 1 row in set
以下语句使用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; SQL
执行上面查询语句,得到以下结果 -
+----------------------------------------------------------------------------------+
| Customer_Address |
+----------------------------------------------------------------------------------+
| Schmitt Carine
54, rue Royale
44000 Nantes
France |
************ 此处省略一大波数据 *******
到此这篇关于Mysql中的concat函数(拼接函数)的文章就介绍到这了,更多相关Mysql concat函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!