ホームページ  >  に質問  >  本文

複数の MySQL 行を 1 つのフィールドに連結することはできますか?

<p><code>MySQL</code> を使用すると、次のことができます。</p> <pre class="brush:php;toolbar:false;">SELECT 趣味 FROM peoples_hobbies WHERE person_id = 5;</pre> <p><strong>私の出力: </strong></p> <pre class="brush:php;toolbar:false;">ショッピング 釣り コーディング</pre> <p>ただし、必要なのは 1 行 1 列だけです。</p> <p>望ましい出力: </strong></p> <pre class="brush:php;toolbar:false;">ショッピング、釣り、コーディング</pre> <p>その理由は、複数のテーブルから複数の値を選択しており、すべての結合の後、必要以上の行を取得しているためです。 </p> <p>MySQL ドキュメントで関数を調べたところ、<code>CONCAT</code> または <code>CONCAT_WS</code> 関数は結果セットを受け入れないようです。 </p> <p>それで、これを行う方法を知っている人はいますか? </p>
P粉556159786P粉556159786424日前456

全員に返信(2)返信します

  • P粉366946380

    P粉3669463802023-08-23 12:03:30

    MySQL バージョン (4.1) がサポートしている場合は、GROUP_CONCAT を確認できます。詳細については、ドキュメントを参照してください。

    クエリ ステートメントは次のとおりです:

    リーリー

    返事
    0
  • P粉002023326

    P粉0020233262023-08-23 10:26:52

    GROUP_CONCAT 関数を使用できます: リーリー

    Ludwig

    のコメントで述べたように、重複を避けるために DISTINCT 演算子を追加できます。 リーリー Jan

    のコメントで述べたように、ORDER BY : を使用して、結合する前に値を並べ替えることもできます。 リーリー Dag

    のコメントで述べたように、結果には 1024 バイトの制限があります。この問題を解決するには、クエリの前に次のクエリを実行します: リーリー もちろん、必要に応じて

    2048

    の値を変更できます。値を計算して割り当てる方法は次のとおりです: リーリー

    返事
    0
  • キャンセル返事