2014年12月3日 星期三

MySQL 設定 group_concat_max_len 的最大長度

其實這篇的來由是延續昨天的 GROUP_CONCAT 用法,我沒想到 GROUP_CONCAT 出來的字串會有最大值的限制,以至於在某個頁面上,爬出來的 JSON 格式發現錯誤....。

查了一下 MySQL 的手冊才得知,GROUP_CONCAT 最大值預設是 1024 個字元。

因此,要改變這個最大值的設定,有兩種方法(恩...對我來說是兩種)

1. 修改 my.cnf 檔案,在 [mysqld] 的後面再加上 group_concat_max...

[mysqld]
socket=/tmp/mysql.sock
group_concat_max_len=6000
group_concat_max_len=val,再填入你要的最大值。
如果你是走這個方式,記得存檔後,重啟 MySQL。


2. 在程式端修改
因為我是用 node.js 在開發 web application,所以也就是搭配 co-mysql 的套件,反正各種 web 開發的程式語言大部份都有可以搭配的 mysql 連線跟使用方式,像我就是直接在程式寫下類似這樣的 query 就可以了:


yield $db.query("SET GLOBAL group_concat_max_len=6000");


完。
其實選擇 2. 的原因沒有其他的,只是覺得別人要 clone 這個專案時,我還要特地說明請他去修改 my.cnf ,我會覺得太煩雜而已。


這篇也寫得蠻清楚的:  mysql 环境变量之 group_concat_max_len


沒有留言:

張貼留言

若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...