Heim >Datenbank >MySQL-Tutorial >Wie kann ich MySQL-Abfrageergebnisse als durch Kommas getrennte Liste abrufen?
Erhalten Sie MySQL-Abfrageergebnisse als durch Kommas getrennte Liste
In MySQL müssen Sie die Abfrageergebnisse möglicherweise als durch Kommas getrennte Liste abrufen. Obwohl Sie Unterabfragen verwenden können, um bestimmte Informationen zu extrahieren, stoßen Sie bei der Darstellung der Daten im gewünschten Format auf einige Einschränkungen.
Frage:
Bedenken Sie die folgende Abfrage:
<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>
Die Unterabfrage gibt jeden Site-Namen als separate Spalte zurück, was nicht mit dem gewünschten Ergebnis der durch Kommas getrennten Liste übereinstimmt.
Lösung:
MySQL bietet die Funktion GROUP_CONCAT
, um dieses Ziel zu erreichen. Durch Nutzung dieser Funktion können Sie Ihre Abfrage wie folgt ändern:
<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>
GROUP_CONCAT
Verkettet die Werte in der angegebenen Spalte (in diesem Fall die Spalte „Name“ in der Tabelle „Sites“) und trennt sie durch ein vordefiniertes Trennzeichen (normalerweise ein Komma). Die Ergebnisse werden dann nach den Spalten „id“ und „name“ in der Tabelle „publications“ gruppiert, wodurch ein eindeutiger Datensatz für jede Veröffentlichung und die zugehörigen Websites bereitgestellt wird, die als durch Kommas getrennte Liste angezeigt werden.
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Abfrageergebnisse als durch Kommas getrennte Liste abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!