Duplikate aus GROUP_CONCAT() mit DISTINCT eliminieren
In MySQL ist GROUP_CONCAT() eine nützliche Funktion zum Aggregieren von Werten aus mehreren Zeilen in einem einzelne durch Kommas getrennte Zeichenfolge. Wenn Sie jedoch mit nicht eindeutigen Werten arbeiten, können in der resultierenden Zeichenfolge Duplikate auftreten. Um dieses Problem zu beheben, kann das DISTINCT-Attribut innerhalb der Funktion GROUP_CONCAT() verwendet werden.
Problem:
Betrachten Sie die folgende Beispieldatentabelle mit einer Spalte „Kategorien“:
categories |
---|
test1 test2 test3 |
test4 |
test1 test3 |
test1 test3 |
Beim Ausführen der folgenden GROUP_CONCAT()-Abfrage:
SELECT GROUP_CONCAT(categories SEPARATOR ' ') FROM table
Das Ergebnis ist:
test1 test2 test3 test4 test1 test3
Das gewünschte Ergebnis ist jedoch:
test1 test2 test3 test4
Lösung:
So entfernen Sie doppelte Werte aus GROUP_CONCAT() Ergebnis verwenden Sie das DISTINCT-Attribut wie folgt:
SELECT GROUP_CONCAT(DISTINCT categories ORDER BY categories ASC SEPARATOR ' ') FROM table
Das DISTINCT-Attribut stellt sicher, dass nur eindeutige Werte im enthalten sind verkettete Zeichenfolge. Mit der ORDER BY-Klausel werden die Werte in aufsteigender Reihenfolge sortiert. Das Ergebnis ist eine durch Kommas getrennte Zeichenfolge, die nur die unterschiedlichen Kategorien enthält:
test1 test2 test3 test4
Das obige ist der detaillierte Inhalt vonWie kann ich Duplikate aus der MySQL-Funktion GROUP_CONCAT() entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!