2009-12-13 53 views
27

SQLite中我可以使用GROUP_CONCAT做:sqlite的GROUP_CONCAT订购

1...A 
1...B 
1...C 
2...A 
2...B 
2...C 

1...C,B,A 
2...C,B,A 

但串联的顺序是随机的 - 根据文档。

我需要GROUP_CONCAT的排序输出是

1...A,B,C 
2...A,B,C 

我怎样才能做到这一点?

回答

54

你可以不使用子查询中的order by子句,然后将这些值串联起来吗?

喜欢的东西

SELECT ID, GROUP_CONCAT(Val) 
FROM (
    SELECT ID, Val 
    FROM YourTable 
    ORDER BY ID, Val 
    ) 
GROUP BY ID; 
+0

谢谢,似乎这样的伎俩! – user230781 2009-12-13 20:56:03

+0

http://stackoverflow.com/questions/9833091/using-order-by-caluse-inside-group-concat-function-in-sqlite – confucius 2012-03-23 01:54:14

+6

请注意,这将** **不适用于MySQL。 (没有人说过,但我错误地认为是这样) – 2014-09-02 15:09:18