MySQL中 concat_ws()函数 作为字符串连接函数,是一个非常重要的MySQL函数,下面总结了一些在实际中可能会有的用法。
[TOC]
concat_ws() 函数
使用方法
CONCAT_WS(separator,str1,str2,...)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。
第一个参数是其它参数的分隔符。
分隔符的位置放在要连接的两个字符串之间。
分隔符可以是一个字符串,也可以是其它参数。
注意:
如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
连接后以逗号分隔
select concat_ws(',','hello','rose');
+-------------------------------+
| concat_ws(',','hello','rose') |
+-------------------------------+
| hello,rose |
+-------------------------------+
和MySQL中 concat() 函数 不同的是, concat_ws() 函数 在执行的时候,不会因为NULL值而返回NULL,如下:
select concat_ws('-',1111,'22',NULL);
+-------------------------------+
| concat_ws(',',1111,'22',NULL) |
+-------------------------------+
| 1111-22 |
+-------------------------------+
>注: 如果连接的字段中有NULL的情况时要这样处理,如下:
select concat_ws('separator',IFNULL(FIELD,'Str'),IFNULL(FIELD,'Str'),IFNULL(NULL,'Str'));
这里可用 IFNULL() 函数 进行一下处理,如果字段为NULL就将其替换成其他字符,这样就可以避免字符串连接错误。
concat()函数
MySQL的 concat() 函数 可以连接一个或者多个字符串,如
select concat('11','22','33');
+------------------------+
| concat('11','22','33') |
+------------------------+
| 112233 |
+------------------------+
和上面的 concat_ws() 函数 不同的是MySQL的 concat() 函数 在连接字符串的时候,只要其中一个是NULL,那么将返回NULL。
select concat('11','22',null);
+------------------------+
| concat('11','22',null) |
+------------------------+
| NULL |
+------------------------+