Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrere MySQL -Zeilen in ein einzelnes Feld verkettet?

Wie kann ich mehrere MySQL -Zeilen in ein einzelnes Feld verkettet?

Linda Hamilton
Linda HamiltonOriginal
2025-01-25 09:21:09196Durchsuche

How Can I Concatenate Multiple MySQL Rows into a Single Field?

Mehrere MySQL-Zeilen in einem Feld kombinieren

MySQL-Joins geben oft viele Zeilen zurück, was die Datenanalyse umständlich macht. In diesem Artikel wird gezeigt, wie Sie zur einfacheren Handhabung mehrere Zeilen effizient in einem einzigen Feld kombinieren können.

Die GROUP_CONCAT-Funktion ist der Schlüssel zu diesem Prozess. Zum Beispiel:

<code class="language-sql">SELECT person_id,
       GROUP_CONCAT(hobbies SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;</code>

Diese Abfrage gruppiert Hobbys nach person_id und verkettet sie mit Kommas als Trennzeichen.

Um Duplikate zu entfernen, verwenden Sie DISTINCT:

<code class="language-sql">SELECT person_id,
       GROUP_CONCAT(DISTINCT hobbies SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;</code>

Für sortierte Ergebnisse verwenden Sie ORDER BY:

<code class="language-sql">SELECT person_id,
       GROUP_CONCAT(hobbies ORDER BY hobbies ASC SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;</code>

Denken Sie daran, dass GROUP_CONCAT standardmäßig auf 1024 Byte begrenzt ist. Um dies zu erhöhen, verwenden Sie:

<code class="language-sql">SET group_concat_max_len = 2048;</code>

Oder berechnen Sie dynamisch die erforderliche Länge:

<code class="language-sql">SET group_concat_max_len = CAST(
                     (SELECT SUM(LENGTH(hobbies)) + COUNT(*) * LENGTH(', ')
                           FROM peoples_hobbies
                           GROUP BY person_id) AS UNSIGNED);</code>

GROUP_CONCAT vereinfacht die Datenbearbeitung durch die Konsolidierung mehrerer Zeilen in einem einzigen, besser verwaltbaren Feld.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere MySQL -Zeilen in ein einzelnes Feld verkettet?. 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