【小ネタ】group_cancatで文字列が途中で切れた時
mysqlにgroup_concatという便利な関数がある
MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.19.1 GROUP BY (集約) 関数 を見てもらうと分かるが、group by で取得できる値を1つのカラムに連結して表示できる。 資料作ったりするのによく使う。
関数の中でDISTINCTやORDER BYも使える。
本題(連結文字列が途中で切れる)
そういう場合に、前述の公式にも書かれているが、以下のパラメータを設定する。
SET [GLOBAL | SESSION] group_concat_max_len = val; GLOVALで設定すると、今の起動インスタンス上全体に反映する。
MySQL5.7ではデフォルト値1024だったので、1024文字を超えた時点で切り捨てられる。 これを10000とかにしておけばいいだけ。
SET group_concat_max_len = 100000;
全体に影響しないようにするにはglobalを入れないでおく(明示的にsession を入れてもいい)。