複数の MySQL 行を 1 つのフィールドに連結することはできますか?
P粉556159786
P粉556159786 2023-08-22 14:02:48
0
2
503
<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粉556159786
P粉556159786

全員に返信(2)
P粉366946380

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

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

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

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

Ludwig

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

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

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

2048

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

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