MYSQL中group_concat有長度限制!默認1024

MYSQL中group_concat有長度限制!默認1024mysql

在mysql中,有個函數叫「group_concat」,日常使用可能發現不了問題,在處理大數據的時候,會發現內容被截取了,
其實MYSQL內部對這個是有設置的,默認不設置的長度是1024,若是咱們須要更大,就須要手工去修改配置文件。

詳細說明以下:

用了group_concat後,select裏若是使用了limit是不起做用的.
sql

用group_concat鏈接字段的時候是有長度限制的,並非有多少連多少。但你能夠設置一下。 函數

使用group_concat_max_len系統變量,你能夠設置容許的最大長度。 大數據

程序中進行這項操做的語法以下,其中 val 是一個無符號整數: spa

SET [SESSION | GLOBAL] group_concat_max_len = val; 對象

若已經設置了最大長度,則結果被截至這個最大長度。 排序

在SQLyog中執行 SET GLOBAL group_concat_max_len = 10 後,從新打開SQLyog,設置就會生效。 字符串

--------------------------------------------------------------- it

GROUP_CONCAT將某一字段的值按指定的字符進行累加,系統默認的分隔符是逗號,能夠累加的字符長度爲1024字節。能夠對這些參數進行修改。 變量

1.先舉一個簡單的例子

   select group_concat(f_a) from t_one group by f_b;

   按f_b進行分組查詢,將每組中的f_a進行累加。

2.修改默認的分隔符

   select group_concat(f_a  separator  '_') from t_one group by f_b;

   separator  是一個關鍵字,後面跟着要進行分隔的字符

3.排序

   select group_concat(f_a order by f_a  separator  '_') from t_one group by f_b;

4.修改默認字符大小

   1).在MySQL配置文件中加上

        group_concat_max_len = 102400 #你要的最大長度

    2).能夠簡單一點,執行語句,能夠設置做用範圍

           SET GLOBAL group_concat_max_len=102400;

           SET SESSION group_concat_max_len=102400;

5.和concat使用

    group_concat默認返回的是BLOB大對象,能夠使用concat,返回字符串,還能夠在返回的內容,在加入其它的數 據。

相關文章
相關標籤/搜索