Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine durch Kommas getrennte Liste von Werten in MySQL-Abfrageergebnissen erhalten?

Wie kann ich eine durch Kommas getrennte Liste von Werten in MySQL-Abfrageergebnissen erhalten?

Linda Hamilton
Linda HamiltonOriginal
2025-01-17 02:10:09481Durchsuche

How Can I Get a Comma-Separated List of Values in MySQL Query Results?

Generieren von durch Kommas getrennten Listen in MySQL-Abfrageergebnissen

Viele Datenbankbenutzer benötigen durch Kommas getrennte Listen für ihre MySQL-Abfragen. Obwohl MySQL dies nicht direkt unterstützt, bietet die Funktion GROUP_CONCAT eine einfache Lösung.

Das Problem

Stellen Sie sich eine Abfrage vor, die Veröffentlichungsdaten und zugehörige Site-Namen abruft:

<code class="language-sql">SELECT p.id, p.name, 
       (SELECT name 
          FROM sites s 
         WHERE s.id = p.site_id) AS site_list
  FROM publications p;</code>

Dies gibt eine Spalte „site_list“ mit nur einem Site-Namen pro Veröffentlichung zurück. Wir benötigen stattdessen eine durch Kommas getrennte Liste.

Die Lösung: GROUP_CONCAT

Die Funktion GROUP_CONCAT verkettet Werte aus einer Spalte. Hier ist die verbesserte Abfrage:

<code class="language-sql">SELECT p.id, p.name, GROUP_CONCAT(s.name) AS site_list
FROM sites s
INNER JOIN publications p ON s.id = p.site_id
GROUP BY p.id, p.name;</code>

Dabei wird ein INNER JOIN verwendet, um die Tabellen „Sites“ und „Publikationen“ zu verknüpfen und so korrekte Site-Publikations-Zuordnungen sicherzustellen. GROUP_CONCAT(s.name) verkettet Site-Namen und GROUP BY p.id, p.name gruppiert die Ergebnisse nach Veröffentlichungs-ID und Name, wodurch die gewünschte durch Kommas getrennte Liste in der Spalte „site_list“ erstellt wird. Dadurch wird effizient die erforderliche Leistung bereitgestellt.

Das obige ist der detaillierte Inhalt vonWie kann ich eine durch Kommas getrennte Liste von Werten in MySQL-Abfrageergebnissen erhalten?. 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