mysql--字符串連接之concat()、concat_ws()沥阳、group_concat()
字符串連接包含三種連接方式:
第一種跨琳,concat(str1,str2,str3.......)將多個字符串連接成一個字符串。
注:第一個參數(shù)指定分隔符桐罕。需要注意的是分隔符不能為null,如果為null,則返回結(jié)果為null功炮。
第二種溅潜,concat_ws(分隔符,str1,str2,........),和concat()一樣薪伏,將多個字符串連接成一個字符串滚澜,但是可以一次性指定分隔符~,但分隔符不能為空嫁怀。
第三種设捐,group_concat( [distinct] 要連接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] ),將group by 產(chǎn)生的同一組中的值連接起來,返回一個字符串塘淑。
樣例數(shù)據(jù):
第一種萝招,concat(str1,str2,str3.......)將多個字符串連接成一個字符串;
SELECT *, CONCAT(UserName, Subject1, Score) FROM studentScores_Test
注:當(dāng)有任何一個參數(shù)為null時存捺,則返回值為null
添加逗號實例:SELECT *, CONCAT(UserName, ',',Subject1,',', Score) FROM studentScores_Test
第二種槐沼,concat_ws(分隔符,str1,str2,........),和concat()一樣捌治,將多個字符串連接成一個字符串岗钩,但是可以一次性指定分隔符~,但分隔符不能為空肖油。
以逗號進(jìn)行分割:
SELECT *, CONCAT_WS( ',',UserName,Subject1, Score) FROM studentScores_Test
第三種兼吓,group_concat( [distinct] 要連接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] ),將group by 產(chǎn)生的同一組中的值連接起來,返回一個字符串森枪。
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
好啦揍移,關(guān)于Mysql字符串連接就講到這里次和,謝謝啦。