2012-02-26 6 views
14

Potrzebuję funkcji, która zwraca listę ciągów.Funkcja agregująca w MySQL - lista (jak LISTAGG w Oracle)

Mam dane w tabeli tak:

Id MyString 
------------------------ 
1 First 
2 Second 
3 Third 
4 Fourth 

muszę funkcję takiego (coś jak to działa w Oracle):

select LISTAGG(MyString, ', ') as myList where id < 4 

która zwraca coś takiego:

myList 
------------------------ 
First, Second, Third 

Jakieś pomysły?

+4

To jest ['GROUP_CONCAT()' w MySQL] (http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat). –

+0

możliwy duplikat [wyników MySQL jako listy rozdzielanej przecinkami] (http://stackoverflow.com/questions/662207/mysql-results-as-comma-separated-list) –

Odpowiedz

27

Szukacie GROUP_CONCAT()

Spróbuj tego:

select group_concat(MyString separator ', ') as myList from table 
where id < 4 

Oczywiście, można group by wyniki.