タグ

2014年5月13日のブックマーク (1件)

  • 【MySQL】GROUP_CONCAT()を使ってみる at softelメモ

    以下のようなテーブルがあるとします。 Aテーブル Bテーブル 以下のようなSQLを流すと、 SELECT A.id, GROUP_CONCAT(B.bname) as namae FROM A, B WHERE A.id = B.aid GROUP BY A.id こんな風に、まとめてくれました。 そのほか、以下のようなこともできます。 昇順・降順に並べてくれる GROUP_CONCAT(B.bname order by B.id) 重複する名前をまとめてくれる GROUP_CONCAT(distinct(B.bname)) 区切り文字指定もできる GROUP_CONCAT(B.bname separator '/') 参考 ・ MySQLの独自の関数なので、他のデータベースを使う場合は要検討(Oracleだとwmsys.wm_concatがあるなど)。 ・ NULLを含む場合注意。 この

    Aoba
    Aoba 2014/05/13
    GROUP_CONCATの長さ制限は初期値で1024バイト。それを超えるとバッサリ切り落とされるので要注意。超えそうな場合は事前にset sessionしましょう