読者です 読者をやめる 読者になる 読者になる

end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

mysqlではgroup byしてもgroup_concat()で各レコードの内容出力可

http://dev.mysql.com/doc/refman/5.1/ja/group-by-functions.html
によれば

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr}
                 [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

mysql> SELECT student_name,
    ->     GROUP_CONCAT(test_score)
    ->     FROM student
    ->     GROUP BY student_name;

または

mysql> SELECT student_name,
    ->     GROUP_CONCAT(DISTINCT test_score
    ->               ORDER BY test_score DESC SEPARATOR ' ')
    ->     FROM student
    ->     GROUP BY student_name;

らしい。

2013/12/8追記

※GROUP_CONCAT()内で、DISTINCT , ORDER BY , SEPARATOR を指定できます
※GROUP_CONCAT()の最大文字数は1024ですが、SET group_concat_max_len = 2048; のようにmy.cnfに設定も可能らしい


こんな便利な関数を知りませんでした。お恥ずかしい