Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine durch Kommas getrennte Liste von Werten in MySQL-Abfrageergebnissen erhalten?
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!