GROUP_CONCAT を書く時の注意とメモ。

たまにしか書かない、GROUP_CONCAT の書式をよく忘れるのでメモ。

GROUP_CONCAT( 列名 [ ORDER  BY  順序つける列名 ] [ SEPARATOR 区切り文字] )

注意しなければならないのは CONCAT対象の列の値が NULL の場合、

SEPARATOR を指定しても区切り文字もつかず全てNULLだと空文字になってしまう。

 SEPARATOR ',' を指定しても全てNULLは期待する値 ",,,," のようにならない。

よって、

GROUP_CONCAT( COALESCE(列名 , 'NULL' SEPARATOR ',') 

のようにCOALESCE で逃げないと、正確な区切りを後で判定きない。