CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一,下面就将为您详细介绍 CONCAT() 函数。
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:
mysql> select concat(cast(100 as char), ' Hello'); +-------------------------------------+ | concat(cast(100 as char), ' Hello') | +-------------------------------------+ | 100 Hello | +-------------------------------------+ 1 row in set mysql> select concat(' My', 'S', 'QL'); +--------------------------+ | concat(' My', 'S', 'QL') | +--------------------------+ | MySQL | +--------------------------+ 1 row in set mysql> select concat(' My', NULL, 'QL'); +---------------------------+ | concat(' My', NULL, 'QL') | +---------------------------+ | NULL | +---------------------------+ 1 row in set mysql> select concat(14.3); +--------------+ | concat(14.3) | +--------------+ | 14.3 | +--------------+ 1 row in set
CONCAT_WS() 代表 CONCAT With Separator ,是 CONCAT() 的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
mysql> select concat_ws('|', 'First Name', 'Second Name', 'Last Name'); +----------------------------------------------------------+ | concat_ws('|', 'First Name', 'Second Name', 'Last Name') | +----------------------------------------------------------+ | First Name|Second Name|Last Name | +----------------------------------------------------------+ 1 row in set
CONCAT_WS() 不会忽略任何空字符串,然而会忽略所有的 NULL。
mysql> select concat_ws('|', 'First Name', NULL, ' ', 'Last Name'); +-------------------------------------------------------+ | concat_ws('|', 'First Name', NULL, ' ', 'Last Name') | +-------------------------------------------------------+ | First Name| |Last Name | +-------------------------------------------------------+ 1 row in set