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
注:当有任何一个参数为null时,则返回值为null
添加逗号实例:SELECT *, CONCAT(UserName, ',',Subject1,',', Score) FROM studentScores_Test
第二种,concat_ws(分隔符,str1,str2,........),和concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符~,但分隔符不能为空。
以逗号进行分割:
SELECT *, CONCAT_WS( ',',UserName,Subject1, Score) FROM studentScores_Test
第三种,group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] ),将group by 产生的同一组中的值连接起来,返回一个字符串。
1.以UserName分组,把Subject1连接起来
SELECT UserName,GROUP_CONCAT(Subject1) FROM studentScores_Test GROUP BY UserName
2.以UserName分组,把Subject1,Score连接起来;
SELECT UserName,GROUP_CONCAT(Subject1,Score) FROM studentScores_Test GROUP BY UserName
3.以UserName分组,把Subject1连接起来,以Subject1排序;
SELECT UserName,GROUP_CONCAT(Subject1 ORDER BY Subject1 DESC) FROM studentScores_Test GROUP BY UserName
3.以UserName分组,把Subject1连接起来,以Subject1排序,连接符号是“--”;
SELECT UserName,GROUP_CONCAT(Subject1 ORDER BY Subject1 DESC SEPARATOR '---') FROM studentScores_Test GROUP BY UserName
3.以UserName分组,把Subject1连接起来并去重,以Subject1排序,连接符号是“*”;
SELECT UserName,GROUP_CONCAT(DISTINCT Subject1 ORDER BY Subject1 DESC SEPARATOR '*') FROM studentScores_Test GROUP BY UserName
好啦,关于Mysql字符串连接就讲到这里,谢谢啦。