Heim >Datenbank >MySQL-Tutorial >Wie aggregiere ich Strings in einer Liste in MySQL (ähnlich wie LISTAGG von Oracle)?
Aggregatfunktion in MySQL: Werte in einer Liste aggregieren (ähnlich wie LISTAGG in Oracle)
Abfrage:
I need function, that returns list of strings. I have data in table like this: Id MyString ------------------------ 1 First 2 Second 3 Third 4 Fourth I need function like this (something like this works in oracle): select LISTAGG(MyString, ', ') as myList where id < 4 That returns something like this: myList ------------------------ First, Second, Third
Antwort:
MySQL stellt die Funktion GROUP_CONCAT() für bereit diesen Zweck. Es fasst Werte in einer durch Kommas getrennten Liste zusammen.
Abfrage mit GROUP_CONCAT():
select group_concat(MyString separator ', ') as myList from table where id < 4
Diese Abfrage gibt eine durch Kommas getrennte Liste von Zeichenfolgen zurück. für alle Zeilen, in denen die ID kleiner als 4 ist. Die Spalte „myList“ enthält die aggregierten Ergebnis.
Hinweis: Die Funktion GROUP_CONCAT() ermöglicht bei Bedarf die Gruppierung nach mehreren Spalten. Beispiel:
select group_concat(MyString separator ', ') as myList from table where id < 4 group by another_column
Diese Abfrage gruppiert die Ergebnisse nach der Spalte „other_column“ und erstellt eine Liste mit Zeichenfolgen für jede Gruppe.
Das obige ist der detaillierte Inhalt vonWie aggregiere ich Strings in einer Liste in MySQL (ähnlich wie LISTAGG von Oracle)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!