在MySQL GROUP_CONCAT中订购,其中包含一个函数

acm*_*cme 21 mysql sql sql-order-by 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
Run Code Online (Sandbox Code Playgroud)

我想得到一个结果(由b.id排序):

michael    1:science,2:maths,3:physics
Run Code Online (Sandbox Code Playgroud)

但我得到:

michael    2:maths,1:science,3:physics
Run Code Online (Sandbox Code Playgroud)

有谁知道我可以在我的group_concat中通过b.id订购?

Jaz*_*zzy 40

如果有人关心,我想我找到了至少类似问题的解决方案.

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
Run Code Online (Sandbox Code Playgroud)

如果存在,则order by在分隔符之前进入group_concat.