GROUP_CONCAT 関数で結果を順序付けたいのですが、問題は、GROUP_CONCAT 関数の選択が次のような別の関数であることです (ファンタジー選択)。
SELECT a.name,
GROUP_CONCAT(DISTINCT CONCAT_WS(':', b.id, c.name) ORDER BY b.id ASC) AS course
FROM people a, stuff b, courses c
GROUP BY a.id
次のような結果を取得したいです (b.id で順序付け):
michael 1:science,2:maths,3:physics
しかし、私はこう思います:
michael 2:maths,1:science,3:physics
ここで、group_concat で b.id で並べ替える方法を知っている人はいますか?
ベストアンサー1
もし誰かが気にするなら、私は少なくとも同様の問題に対する解決策を見つけたと思います。
http://mahmudahsan.wordpress.com/2008/08/27/mysql-the-group_concat-function/
select GROUP_CONCAT(columnName order by someColumn SEPARATOR '|') from tableName where fieldId = p.id
セパレーターがある場合は、order by は、セパレーターの前の group_concat 内に入ります。