Heim >Datenbank >MySQL-Tutorial >Wie verkette ich Zeichenfolgen aus mehreren Zeilen in MySQL mithilfe von GROUP BY?

Wie verkette ich Zeichenfolgen aus mehreren Zeilen in MySQL mithilfe von GROUP BY?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-21 20:36:10883Durchsuche

How to Concatenate Strings from Multiple Rows in MySQL using GROUP BY?

Verwenden Sie GROUP BY von MySQL, um mehrzeilige Zeichenfolgen zu verbinden

Eine häufige Aufgabe bei Datenbankoperationen ist das Verketten mehrzeiliger Zeichenfolgen. In MySQL bietet die GROUP BY-Klausel eine praktische Möglichkeit, dies zu erreichen.

Die Aufgabe besteht darin, die Tabelle wie unten gezeigt umzuwandeln:

foo_id foo_name
1 A
1 B
2 C

Konvertieren in:

foo_id foo_name
1 A B
2 C

Die Lösung besteht darin, die Funktion GROUP_CONCAT und die GROUP BY-Klausel zu verwenden:

<code class="language-sql">SELECT foo_id, GROUP_CONCAT(foo_name SEPARATOR ' ') FROM table GROUP BY foo_id;</code>

Lassen Sie uns die Aussage aufschlüsseln:

  • GROUP_CONCAT: Diese Funktion verkettet die Nicht-NULL-Werte jeder Gruppe in der angegebenen Spalte (in diesem Fall foo_name).
  • GROUP BY foo_id: Diese Klausel gruppiert die Zeilen nach der foo_id-Spalte und stellt sicher, dass der Join-Vorgang für jeden eindeutigen foo_id-Wert ausgeführt wird.
  • SEPARATOR ' ' (optional): Dies gibt das Zeichen an, das zum Trennen verketteter Werte verwendet wird („ fügt ein Leerzeichen zwischen Namen hinzu).

In unserem Beispiel verkettet diese Funktion die foo_name-Werte für jede foo_id, um die gewünschte Ausgabe zu erhalten.

Weitere Informationen zu GROUP_CONCAT finden Sie in der MySQL-Dokumentation: https://www.php.cn/link/18fc3b6cc1e55ccea877c161e2e9ba27.

Das obige ist der detaillierte Inhalt vonWie verkette ich Zeichenfolgen aus mehreren Zeilen in MySQL mithilfe von GROUP BY?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn