MySQL-concat,concat_ws,group_con

2020-03-16  本文已影响0人  花讽院_和狆

concat()可以把字符串合并到一起,在对于需要判断两个不同条件的时候,比较有用,把两个条件进行合并,很简便,函数的参数和格式为:

concat(str1, str2,...)
其中str1,str2分别是需要连接的文本。
当其中一个参数为NULL时,整体输出为NULL。

例子:

select concat('1','NULL') from dual;

输出如下:


当其中有一个为NULL时:

select concat('1',NULL, '1') from dual;

注意,其中的NULL和之前的'NULL'不一样!
可以得到输出结果为:

concat_ws()函数

这个函数功能和concat是类似的,但是多了一个添加分隔符的功能,格式如下:

concat_ws(separator, str1, str2, ...)
其中separator是分隔符,从str1和str2之间开始添加。

例如:

SELECT
    concat_ws ( '/', 'NULL', '1' ) 
FROM
    DUAL;

可以得到输出为:


这个函数中,当字符串str1,str2等为NULL时,只是单纯的省略这个参数不加分隔符,但是字符串不会为NULL。

SELECT
    concat_ws ( '/', 'NULL', '1', NULL, '2' ) 
FROM
    DUAL;

输出为:



可以看到,第三个字符串的NULL被省略了。

当第一个参数(分隔符)为NULL时,整体为NULL。

SELECT
    concat_ws ( NULL, 'NULL', '1', NULL, '2' ) 
FROM
    DUAL;

输出为:


group_concat()

该函数需要配合group by关键字使用,作用是把分组出来的字段按组进行合并。格式如下:

group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

例如:
有表如下:


employee表
SELECT
    GROUP_CONCAT( MONTH order by salary desc separator '*') 
FROM
    employee 
GROUP BY
    Id

输出如下:


看起来比较难以理解,解释一下:

在分组函数中进行连接,某些时候会比较方便。

上一篇下一篇

猜你喜欢

热点阅读