ホームページ > データベース > mysql チュートリアル > 複数のMySQL行をgroup_concat()を使用して単一のフィールドに結合するにはどうすればよいですか?

複数のMySQL行をgroup_concat()を使用して単一のフィールドに結合するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-25 09:41:07
オリジナル
213 人が閲覧しました

How Can I Combine Multiple MySQL Rows into a Single Field Using GROUP_CONCAT()?

mysql行をgroup_concat()

を使用して単一のフィールドに組み合わせます

MySQLデータベースを操作する場合、より明確なプレゼンテーションのために、複数の行からデータを単一のフィールドに統合するか、データの冗長性を減らす必要があることがよくあります。 これは、異なるテーブルに広がる関連データを扱う場合に特に役立ちます。 たとえば、ユーザー情報と関連する趣味を組み合わせることを想像してください。

関数は、簡単なソリューションを提供します。複数行の値を単一の文字列に連結し、指定された区切り文字で区切ります。 GROUP_CONCAT()

group_concat():

の使用方法

  1. 列のグループ化:

    まず、共通フィールドを使用して組み合わせたい行をグループ化します。 これにより、が関連データを動作させることが保証されます。 GROUP_CONCAT()

    <code class="language-sql">SELECT person_id, GROUP_CONCAT(hobbies SEPARATOR ', ')
    FROM peoples_hobbies
    GROUP BY person_id;</code>
    ログイン後にコピー
  2. 重複を削除する(オプション):

    キーワードを使用して、連結された文字列に重複した値を含めることを避けます。 DISTINCT

    <code class="language-sql">SELECT person_id, GROUP_CONCAT(DISTINCT hobbies SEPARATOR ', ')
    FROM peoples_hobbies
    GROUP BY person_id;</code>
    ログイン後にコピー
    並べ替え値(オプション):
  3. 句を使用して連結値を注文します。

    ORDER BY

    重要な考慮事項:
    <code class="language-sql">SELECT person_id, GROUP_CONCAT(hobbies ORDER BY hobbies ASC SEPARATOR ', ')
    FROM peoples_hobbies
    GROUP BY person_id;</code>
    ログイン後にコピー

長さの制限:

    にはデフォルトの出力制限があります(通常は1024バイト)。 これを増やすには、クエリを実行する前に
  • システム変数を調整します。

    GROUP_CONCAT()group_concat_max_len動的長さの計算:

    よりダイナミックアプローチの場合、データに基づいて必要な
    <code class="language-sql"> SET group_concat_max_len = 2048; -- Adjust the value as needed</code>
    ログイン後にコピー
    を計算します。
  • これらの手順と考慮事項に従うことにより、を効果的に使用して、複数のMySQL行を単一のより管理しやすいフィールドに効率的に組み合わせることができます。

以上が複数のMySQL行をgroup_concat()を使用して単一のフィールドに結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート