mysql concat函数int_MySQL concat()函数

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

要连接两个或多个引用的字符串值,请将字符串放在一起,如下所示:

SELECT 'MySQL ' 'String ' 'Concatenation';

执行上面查询语句,得到以下结果 -

mysql> SELECT 'MySQL ' 'String ' 'Concatenation';

+----------------------------+

| MySQL |

+----------------------------+

| MySQL String Concatenation |

+----------------------------+

1 row in set

与其他数据库管理系统相比,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');

执行上面查询语句,得到以下结果 -

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

请参见示例数据库(yiibaidb)中的customers表,其结构如下所示 -

mysql> desc customers;

+------------------------+---------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------------------+---------------+------+-----+---------+-------+

| customerNumber | int(11) | NO | PRI | NULL | |

| customerName | varchar(50) | NO | | NULL | |

| contactLastName | varchar(50) | NO | | NULL | |

| contactFirstName | varchar(50) | NO | | NULL | |

| phone | varchar(50) | NO | | NULL | |

| addressLine1 | varchar(50) | NO | | NULL | |

| addressLine2 | varchar(50) | YES | | NULL | |

| city | varchar(50) | NO | | NULL | |

| state | varchar(50) | YES | | NULL | |

| postalCode | varchar(15) | YES | | NULL | |

| country | varchar(50) | NO | | NULL | |

| salesRepEmployeeNumber | int(11) | YES | MUL | NULL | |

| creditLimit | decimal(10,2) | YES | | NULL | |

+------------------------+---------------+------+-----+---------+-------+

13 rows in set

要获取联系人的全名,您可以使用CONCAT函数将名字,空格,姓氏连接,如下查询语句:

SELECT

concat(contactFirstName,' ',contactLastName) Fullname

FROM

customers;

执行上面查询语句,得到以下结果 -

mysql> SELECT

concat(contactFirstName,' ',contactLastName) Fullname

FROM

customers;

+--------------------------+

| Fullname |

+--------------------------+

| Carine Schmitt |

| Jean King |

| Peter Ferguson |

| Janine Labrune |

| Jonas Bergulfsen |

***** 此处省略了一大波数据 ****

| Sue Taylor |

| Thomas Minsu |

| Valarie Franco |

| Tony Snowden |

+--------------------------+

122 rows 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');

执行上面查询语句,得到以下结果 -

mysql> SELECT CONCAT_WS(',','Max','Su');

+---------------------------+

| CONCAT_WS(',','Max','Su') |

+---------------------------+

| Max,Su |

+---------------------------+

1 row in set

当且仅当作为分隔符的第一个参数为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;

执行上面查询语句,得到以下结果 -

+----------------------------------------------------------------------------------+

| Customer_Address |

+----------------------------------------------------------------------------------+

| Schmitt Carine

54, rue Royale

44000 Nantes

France |

************ 此处省略一大波数据 *******

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

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值