複数の MySQL 行を 1 つのフィールドに連結するにはどうすればよいですか?
P粉482108310
P粉482108310 2023-08-28 11:10:23
0
2
420
<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>期待される出力: </strong></p> <pre class="brush:php;toolbar:false;">ショッピング、釣り、コーディング</pre> <p>その理由は、複数のテーブルから複数の値を選択しており、すべての結合の後、必要以上の行を取得しているためです。 </p> <p>MySQL ドキュメントで関数を調べたところ、<code>CONCAT</code> または <code>CONCAT_WS</code> 関数が結果セットを受け入れるようではないようです。 </p> <p>この方法を知っている人はいますか? </p>
P粉482108310
P粉482108310

全員に返信(2)
P粉520545753

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

次のようになります:

リーリー
いいねを押す +0
P粉041856955

GROUP_CONCAT: を使用できます。 リーリー

Ludwig が

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

のコメントで述べたように、

ORDER BY a>: を使用して、内破する前に値を並べ替えることもできます。 リーリー Dag が

のコメントで述べたように、

結果には 1024 バイトの制限があります。この問題を解決するには、クエリを実行する前に次のクエリを実行します: リーリー もちろん、##2048

は必要に応じて変更できます。値を計算して割り当てる:

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート