sql查詢,合併列值爲一行

oracle寫法:

select WM_CONCAT(A.列名) as citys from 表名 A 

sql server寫法:

select stuff((select ','+A.列名 from 表名 A FOR xml PATH('')), 1, 1, '') as citys

mysql寫法:

1、默認的逗號分隔

select GROUP_CONCAT(A.列名) as citys from 表名 A;

2、用空格分隔

select GROUP_CONCAT(A.列名 SEPARATOR  ' ') as citys from 表名 A; 

問題記錄:

       GROUP_CONCAT函數用於將多個字符串連接成一個字符串,在拼接成字符串時就會存在拼接長度的問題,mysql 默認的拼接最大長度爲1024 個字節,由於1024個字節會出現不夠用的情況,所以有時需要去根據情況進行修改,方式如下。

1、查看當前mysql group_concat_max_len

       進入mysql狀態,輸入:show variables like 'group_concat_max_len',如果未曾修改會得到下面結果:

2、修改mysql group_concat_max_len 

       進入到指定文件夾下,修改my.ini文件,注意這個ProgramData是個隱藏的文件,注意不是Program Files文件夾。

       在[mysqld]下新增配置:group_concat_max_len = 4294967295

       重啓下mysql服務,然後重新查看當前狀態即可:

       輸入:show variables like 'group_concat_max_len'; 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章