Doppelte Einträge in MySQL mit GROUP_CONCAT kombinieren
Diese Anleitung erklärt, wie man Zeilen mit identischen foo_id
-Werten zusammenführt und ihre entsprechenden foo_name
-Einträge in einer einzigen Zeichenfolge innerhalb einer MySQL-Tabelle verkettet.
Die Lösung: GROUP_CONCAT und GROUP BY
Die GROUP_CONCAT
-Funktion von MySQL löst dieses Problem effizient, wenn sie in Verbindung mit GROUP BY
verwendet wird. Hier ist die Abfrage:
<code class="language-sql">SELECT id, GROUP_CONCAT(name SEPARATOR ' ') FROM table GROUP BY id;</code>
Abfrageaufschlüsselung:
SELECT id, GROUP_CONCAT(name SEPARATOR ' ')
: Dadurch wird die Spalte id
ausgewählt und mit GROUP_CONCAT
werden die Werte der Spalte name
für jede Gruppe kombiniert. Das SEPARATOR ' '
gibt ein Leerzeichen als Trennzeichen zwischen verketteten Namen an.FROM table
: Gibt die Tabelle an, die die Daten enthält.GROUP BY id
: Gruppiert die Zeilen basierend auf den eindeutigen Werten in der Spalte id
.Wie es funktioniert:
GROUP_CONCAT
aggregiert Nicht-NULL-Werte aus jeder durch GROUP BY
definierten Gruppe. Das Trennzeichen gewährleistet die Lesbarkeit, indem es Leerzeichen zwischen den verketteten Namen setzt. Dadurch werden Zeilen mit demselben id
effektiv zusammengeführt und eine einzelne Zeile erstellt, in der alle zugehörigen Namen in einer Zeichenfolge zusammengefasst sind.
Weiterführende Literatur:
Ausführlichere Informationen zu GROUP_CONCAT
finden Sie in der offiziellen MySQL-Dokumentation: https://www.php.cn/link/18fc3b6cc1e55ccea877c161e2e9ba27
Das obige ist der detaillierte Inhalt vonWie kann ich Strings in MySQL mit GROUP BY verketten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!