GROUP_CONCATで複数カラムのデータを取得した際に、カラム間にもセパレーターを付ける
2017-09-27
SQLべた書きで、速度改善を狙う際によく使われるのがGROUP_CONCAT。
しかし複数カラムを取得しようと思った際、レコード間にセパレーターは付けられるものの、カラム間にセパレーターが付けられなくて困った人もいるんじゃないかと思います。
GROUP_CONCATでカラム間にもセパレーターを付ける
1 |
GROUP_CONCAT(CONCAT(a.id, ':'), a.name SEPARATOR ', ') as a_data |
なんてことは無く、GROUP_CONCATの引数にCONCAT付けて文字列結合してあげるだけ。
これで
「1名前,2名前」みたいになってたのが「1:名前,2:名前」みたいになるので、explodeとかで色々やれる。