环球在线开户——SKSKFC
Mysql中的concat函数(拼接函数)
概述
很多时候,我们需要将不同地方获得的字符串拼接在一起,此时就需要使用CONCAT
和CONCAT_WS
函数
要连接两个或多个引用的字符串值,请将字符串放在一起,如下所示:
mysql>
SELECT
'MySQL '
'String '
'Concatenation'
;
+
----------------------------+
| MySQL |
+
----------------------------+
| MySQL String Concatenation |
+
----------------------------+
1 row
in
set
除了使用空格进行字符串连接之外,mysql还提供了两个连接字符串值的函数CONCAT
和CONCAT_WS
Mysql Concat函数
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_Ws函数
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 |
************ 此处省略一大波数据 *******