数据分析随笔-生活工作点滴

mysql--字符串连接之concat、concat_ws、gr

2019-07-11  本文已影响6人  默直

mysql--字符串连接之concat()、concat_ws()、group_concat()


字符串连接包含三种连接方式:

第一种,concat(str1,str2,str3.......)将多个字符串连接成一个字符串。

注:第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。

第二种,concat_ws(分隔符,str1,str2,........),和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符~,但分隔符不能为空。

第三种,group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] ),将group by 产生的同一组中的值连接起来,返回一个字符串。


样例数据:

样例数据

第一种,concat(str1,str2,str3.......)将多个字符串连接成一个字符串;

SELECT *, CONCAT(UserName, Subject1, Score) FROM studentScores_Test

concat字符串连接

注:当有任何一个参数为null时,则返回值为null

添加逗号实例:SELECT *, CONCAT(UserName, ',',Subject1,',', Score) FROM studentScores_Test

concat()添加逗号

第二种,concat_ws(分隔符,str1,str2,........),和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符~,但分隔符不能为空。

以逗号进行分割:

SELECT *, CONCAT_WS( ',',UserName,Subject1, Score) FROM studentScores_Test

concat_ws字符串连接

第三种,group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] ),将group by 产生的同一组中的值连接起来,返回一个字符串。

具体样例

1.以UserName分组,把Subject1连接起来

SELECT UserName,GROUP_CONCAT(Subject1) FROM studentScores_Test GROUP BY UserName

group_concat字符串连接

2.以UserName分组,把Subject1,Score连接起来;

SELECT UserName,GROUP_CONCAT(Subject1,Score) FROM studentScores_Test GROUP BY UserName

group_concat()字符串连接

3.以UserName分组,把Subject1连接起来,以Subject1排序;

SELECT UserName,GROUP_CONCAT(Subject1 ORDER BY Subject1 DESC) FROM studentScores_Test GROUP BY UserName


group_concat()字符串连接

3.以UserName分组,把Subject1连接起来,以Subject1排序,连接符号是“--”;

SELECT UserName,GROUP_CONCAT(Subject1 ORDER BY Subject1 DESC SEPARATOR '---') FROM studentScores_Test GROUP BY UserName

group_concat()字符串连接

3.以UserName分组,把Subject1连接起来并去重,以Subject1排序,连接符号是“*”;

SELECT UserName,GROUP_CONCAT(DISTINCT Subject1 ORDER BY Subject1 DESC SEPARATOR '*') FROM studentScores_Test GROUP BY UserName

group_concat字符串连接

好啦,关于Mysql字符串连接就讲到这里,谢谢啦。

上一篇下一篇

猜你喜欢

热点阅读