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
Freigeben: 2025-01-25 09:21:09
Original
213 Leute haben es durchsucht

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:

SELECT person_id,
       GROUP_CONCAT(hobbies SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;
Nach dem Login kopieren

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

Um Duplikate zu entfernen, verwenden Sie DISTINCT:

SELECT person_id,
       GROUP_CONCAT(DISTINCT hobbies SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;
Nach dem Login kopieren

Für sortierte Ergebnisse verwenden Sie ORDER BY:

SELECT person_id,
       GROUP_CONCAT(hobbies ORDER BY hobbies ASC SEPARATOR ', ')
FROM peoples_hobbies
GROUP BY person_id;
Nach dem Login kopieren

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

SET group_concat_max_len = 2048;
Nach dem Login kopieren

Oder berechnen Sie dynamisch die erforderliche Länge:

SET group_concat_max_len = CAST(
                     (SELECT SUM(LENGTH(hobbies)) + COUNT(*) * LENGTH(', ')
                           FROM peoples_hobbies
                           GROUP BY person_id) AS UNSIGNED);
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage