MySQL GROUP_CONCAT で関数を使用して順序付けする 質問する

MySQL GROUP_CONCAT で関数を使用して順序付けする 質問する

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 内に入ります。

おすすめ記事