MySQL GROUP_CONCAT() の最大長の増加
MySQL の GROUP_CONCAT() 関数を使用すると、ユーザーは複数の行の値を 1 つの文字列に連結できます。ただし、この関数にはデフォルトの最大長 1024 文字の制限があります。
制限の克服
group_concat_max_len パラメータを増やすのが最大長を拡張する標準的な方法ですが、パラメータの変更が必要な特定のホスティング環境では実現できない場合があります。
代替解決策
パラメータ制限をバイパスするには、セッション固有の SET SESSION コマンドを使用します。 GROUP_CONCAT() クエリを実行する前に group_concat_max_len を設定すると、最大長を一時的に増やすことができます。
使用法
セッション固有の SET SESSION コマンドは、次の構文に従います。
SET SESSION group_concat_max_len = {new_limit};
向け例:
SET SESSION group_concat_max_len = 1000000;
セッションスコープ設定が適用されたら、通常どおり GROUP_CONCAT() クエリを実行します:
select group_concat(column) from table group by column;
注:
SET SESSION コマンドは現在のセッションにのみ影響します。新しい接続またはセッションを作成すると、セッション固有の設定がリセットされるため、group_concat_max_len 設定を再適用する必要があります。
以上がパラメータの変更が制限されている場合に MySQL GROUP_CONCAT() の最大長を増やす方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。