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字符串連接就講到這里,謝謝啦。