質問: 5; 私の出力: shopping fishing coding しかし、代わりに、1行1列が必要です。 予想される出力: shopping, fishing, coding その理由は、私は複数のテーブルから複数の値を選択していて、すべての結合の後に、必要以上に多くの行があるからです。 mysql doc で関数を探しましたが、concat関数またはconcat_ws関数が結果セットを受け入れるようには見えません。
回答: 複数、個々の行を連結するための代替構文警告:この投稿はあなたをお腹を空かせます。与えられた:私は自分自身が グループではなく複数の個々の行 - を選択し、特定のフィールドに連結することを望んでいることに気づきました。商品idとその名前と価格の表があるとします。+------------+--------------------+-------+ | product_id | name | price | +------------+--------------------+-------+ | 13 | double double | 5 | | 14 | neapolitan shake | 2 | | 15 | animal style fries | 3 | | 16 | root beer | 2 | | 17 | lame t-shirt | 15 | +------------+--------------------+-------+ それから、あなたはチェックボックスとしてこれらの子犬をリストにしている若干の空想的 - シュマンシーなajaxを持っています。空腹のカバユーザーは13, 15, 16を選択します。今日の彼女のデザートはありません...見つける:純粋なmysqlを使って、ユーザーの注文を一行にまとめる方法。溶液:group_concatを the in節 と共に使用します。mysql> select group_concat(name separator ' + ') as order_summary from product where product_id in (13, 15, 16); どの出力:+------------------------------------------------+ | order_summary | +------------------------------------------------+ | double double + animal style fries + root beer | +------------------------------------------------+ ボーナスソリューション:合計金額も必要な場合は、 sum() に入れてください。mysql> select group_concat(name separator ' + ') as order_summary, sum(price) as total from product where product_id in (13, 15, 16); +------------------------------------------------+-------+ | order_summary | total | +------------------------------------------------+-------+ | double double + animal style fries + root beer | 10 | +------------------------------------------------+-------+ シモンズ: in-n-out 近くにない場合は謝罪...