天天看點

mysql中concat(),concat_ws()及group_concat()的用法及差別

1:concat()函數

用法: concat(str1,str2,...)

功能:可以将多個字元串拼接在一起。

測試表資料:

mysql中concat(),concat_ws()及group_concat()的用法及差別

 實戰示範:(1)實戰功能将是三個字段合并在一起

mysql中concat(),concat_ws()及group_concat()的用法及差別

(2)

mysql中concat(),concat_ws()及group_concat()的用法及差別

2.concat_ws()函數 

用法: concat_ws(separator,str1,str2,...)

功能:可以将多個字元串拼接在一起并中間用分隔符隔開。

功能示範:三個字段中間用'_'拼接在一起。

mysql中concat(),concat_ws()及group_concat()的用法及差別

3.group_concat()

功能一:(1)根據主鍵的唯一性分組拼接,顯示列中可以包含非分組列(t.spzt,t.spfm)

mysql中concat(),concat_ws()及group_concat()的用法及差別

如果按照相同列分組合并,則前面顯示列中一定不能出現非分組列字段  如下:

錯誤寫法: 

mysql中concat(),concat_ws()及group_concat()的用法及差別

提示錯誤資訊:

選擇清單不在GROUP BY子句中,并且包含未聚合的列“dsnl_new.t.id”,該列在功能上不依賴GROUP BY子句中的列

 正确寫法:

mysql中concat(),concat_ws()及group_concat()的用法及差別

功能二:将多行資料合并成一行

mysql中concat(),concat_ws()及group_concat()的用法及差別
mysql中concat(),concat_ws()及group_concat()的用法及差別

總結:

1.concat()和concat_ws()的差別是:concat()可以将任意字元串拼接在一起,字元串之間也可以用分隔符拼接;而concat_ws()函數提供了一種友善的方法是将字元串之間用間隔符分開,但是concat_ws()不能将指定字元串之間進行間隔拼接,但是實際工作中常用concat()函數就可以解決大部分問題了。

2.group_concat()函數 是将字元串分組拼接,如果在使用group by 注意如果分組列含有唯一列(比如主鍵)則前面顯示列中可以包含所有列

mysql中concat(),concat_ws()及group_concat()的用法及差別

 隻要分組中含所有唯一列這樣寫也可以

mysql中concat(),concat_ws()及group_concat()的用法及差別

 如果分組列中按照非唯一列分組,則前面顯示列中不能出現非分組列字段

mysql中concat(),concat_ws()及group_concat()的用法及差別

 如果不用group by可以将多行資料合并成一行

mysql中concat(),concat_ws()及group_concat()的用法及差別

繼續閱讀