仕事と晩飯とその他

日記です。

便利な関数があった

どうやったらいいのか散々悩みながら色々探していたらまさしくやりたいことそのものずばりの GROUP_CONCAT という関数を見つけた。普通は悩まないんだろうな簡単な課題だったということか。

ともかく、GROUP BY でグループ化した内容をこの関数でひとまとめにできるだけでなく、DISTINCT と指定すると重複も避けられる、とのこと。ひとまとめにする中味の順番屋区切り文字も指定できるらしい。素晴らしい。ちょっと困ったのは数値のカラムをまとめようとすると [BLOB]なんちゃら と表示されてうまくいかないこと。でもこれは SUBSTRING( GROUP_CONCAT ( まとめたい数値のカラム ), 1) として解決。SUBSTRING って文字列の切り出しだよな、と思ったが、「 GROUP_CONCAT でまとめた内容の1文字目から最後まで文字列として取り出しなさいよ」、ということになるらしい。なるほど。

ここまで来て、「 GROUP_CONCAT で区切り文字が指定できるのであれば CONCAT でも指定できるのでは?」と思って調べてみたら、区切り文字を指定するためには CONCAT_WS という専用の関数があるということがわかった。なるほど。明日試してみるか。

関数のリファレンスが欲しくなってきたなあ。明日、秋葉原で特殊なプリント用紙とファンとハンダ買うついでにMySQLの関数リファレンスブックも探してみるか。