(1)concat函数:用于将两个及以上字符串连接起来,形成一个单一的字符串
语法:concat(字段1,字段2,...)
注意:如果连接串中存在NULL,则返回结果为NULL。
例:
mysql> select concat('2022','03','22');
+--------------------------+
| concat('2022','03','22') |
+--------------------------+
| 20220322 |
+--------------------------+
1 row in set (0.00 sec)
mysql> select concat('2022','03','22',null); #连接串中存在NULL,则返回结果为NULL
+-------------------------------+
| concat('2022','03','22',null) |
+-------------------------------+
| NULL |
+-------------------------------+
1 row in set (0.00 sec)
(2)concat_ws函数:相比concat函数可以指定分隔符,用于两个及以上字符串的连接
语法:concat_ws('分隔符',字段1,字段2,...)
注意:如果分隔符为NULL,则返回结果为NULL;如果参数中存在NULL,则会被忽略。
例:
mysql> select concat_ws('-','2022','03','22');
+---------------------------------+
| concat_ws('-','2022','03','22') |
+---------------------------------+
| 2022-03-22 |
+---------------------------------+
1 row in set (0.00 sec)
mysql> select concat_ws(null,'2022','03','22'); #分隔符为NULL,则返回结果为NULL
+----------------------------------+
| concat_ws(null,'2022','03','22') |
+----------------------------------+
| NULL |
+----------------------------------+
1 row in set (0.00 sec)
mysql> select concat_ws('-','2022','03','22',null); #参数中存在NULL,则会被忽略
+--------------------------------------+
| concat_ws('-','2022','03','22',null) |
+--------------------------------------+
| 2022-03-22 |
+--------------------------------------+
1 row in set (0.00 sec)
(3)group_concat函数
语法:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
注:使用distinct可以排除重复值;分隔符可以省略,默认为逗号。
例:
mysql> select empno,ename,deptno from emp;
+-------+--------+--------+
| empno | ename | deptno |
+-------+--------+--------+
| 7369 | SMITH | 20 |
| 7499 | ALLEN | 30 |
| 7521 | WARD | 30 |
| 7566 | JONES | 20 |
| 7654 | MARTIN | 30 |
| 7698 | BLAKE | 30 |
| 7782 | CLARK | 10 |
| 7788 | SCOTT | 20 |
| 7839 | KING | 10 |
| 7844 | TURNER | 30 |
| 7876 | ADAMS | 20 |
| 7900 | JAMES | 30 |
| 7902 | FORD | 20 |
| 7934 | MILLER | 10 |
+-------+--------+--------+
14 rows in set (0.00 sec)
mysql> select deptno,group_concat(ename separator',') as employees
-> from emp
-> group by deptno;
+--------+--------------------------------------+
| deptno | employees |
+--------+--------------------------------------+
| 10 | CLARK,KING,MILLER |
| 20 | SMITH,JONES,SCOTT,ADAMS,FORD |
| 30 | ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES |
+--------+--------------------------------------+
3 rows in set (0.00 sec)
本文介绍了MySQL中的三个字符串连接函数:concat用于无分隔符连接字符串,当遇到NULL时返回NULL;concat_ws则允许指定分隔符,分隔符为NULL时结果为NULL,但会忽略NULL参数;而group_concat主要用于聚合连接,可去除重复值并自定义分隔符。
——concat系列函数&spm=1001.2101.3001.5002&articleId=123668358&d=1&t=3&u=96e3d009d9554361be17cf64007b1d74)
1142

被折叠的 条评论
为什么被折叠?



