Blog

Mysqlで複数行の結果を一行で出す方法

2014.08.26Cat:MySQL プログラマー

複数の値を1行にまとめて返す、group_concat関数を使用します。

PHPの関数で言うと、implodeと同じ機能になります。

以下2つのテーブルがあります。

Aテーブル

a_id name
1 山田
2 鈴木

 

Bテーブル

b_id a_id hobby
1 1 映画
2 1 お酒
3 2 音楽
4 2 ショッピング
5 1 旅行
6 2 ドライブ
7 1 カラオケ
8 2 サッカー
9 2 温泉

 

group_concatを使用してSQLを作成します。

実行結果はこのようになりました。

a_id hobby
1 映画,お酒,旅行,カラオケ
2 音楽,ショッピング,ドライブ,サッカー,温泉

他にもこんなことができます。

区切り文字を指定できます。(指定しない場合、カンマ区切りになります。)

昇順・降順に並べられます。

Author Profile

  • Launch Cart次世代ECサイト構築システム 初期月額無料
  • LaunchMovie ECに特化した動画制作サービス

Archive

ページTOPへ