2009-12-13 30 views
27

In SQLite Bestellung ich Group_concat tun können:Sqlite Group_concat

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

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

aber die Reihenfolge der Verkettung ist zufällig - nach docs.

ich die Ausgabe von Group_concat sortieren müssen

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

sein Wie kann ich das tun?

Antwort

54

Können Sie einen Subselect nicht mit der Klausel order by verwenden, und dann concat die Werte gruppieren?

So etwas wie

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

Vielen Dank, dass der Trick scheint zu tun! – user230781

+0

http://stackoverflow.com/questions/9833091/using-order-by-caluse-inside-group-concat-function-in-sqlite – confucius

+6

Beachten Sie, dass dies ** nicht ** mit MySQL arbeiten wird. (Niemand hat es gesagt, aber ich habe den Fehler gemacht anzunehmen, dass das der Fall war) –