Heim > Datenbank > MySQL-Tutorial > Wie kann ich MySQL-Ergebnisse nach mehreren Feldern gruppieren und zugehörige Daten anzeigen?

Wie kann ich MySQL-Ergebnisse nach mehreren Feldern gruppieren und zugehörige Daten anzeigen?

Patricia Arquette
Freigeben: 2024-11-06 12:50:03
Original
1020 Leute haben es durchsucht

How Can I Group MySQL Results by Multiple Fields and Display Associated Data?

MySQL-Gruppenergebnisse nach Felddaten: Erforschung von Lösungen für komplexe Datenmanipulation

In diesem Artikel befassen wir uns mit der Herausforderung des Gruppierens und Anzeigens Ergebnisse aus einer MySQL-Datenbank basierend auf spezifischen Felddaten. Konkret wollen wir ein Szenario angehen, in dem die Datenbank diesem ähnelt:

ID    Group   Name

1       1       John
2       1       Andrea
3       1       Jack
4       2       Mike
5       2       Kurt
6       3       Alice
Nach dem Login kopieren

Ursprüngliches Problem: Gruppierung nach einem einzelnen Feld

Die anfängliche Anforderung besteht darin Präsentieren Sie die Daten in tabellarischer Form und gruppieren Sie sie nach dem Feld „Gruppe“:

Group       Name
-----------------------
  1         John
            Andrea
            Jack
-----------------------
  2         Mike
            Kurt
-----------------------
  3         Alice
-----------------------
Nach dem Login kopieren

Lösung:

  • MySQL-Abfrage: Mit der Funktion GROUP_CONCAT können wir die eindeutigen Werte aus dem Feld „Name“ für jeden eindeutigen „Gruppen“-Wert verketten:
<code class="sql">SELECT
p.Group as 'group',
GROUP_CONCAT(name) as names
FROM prueba p
GROUP BY p.Group</code>
Nach dem Login kopieren
  • PHP-Implementierung: Um die Ergebnisse in einer HTML-Tabelle anzuzeigen, können wir die Daten aus der Abfrage abrufen und mit PHP verarbeiten:
<code class="php">$result = $dbc->query("
SELECT
p.Group as 'group',
GROUP_CONCAT(name) as names
FROM prueba p
GROUP BY p.Group
");

echo "<table border='1'><tr><th>Group</th><th>Name</th></tr>";
while($row = $result->fetch_assoc()){
    $names = split(",",$row["names"]);
    echo "<tr><td rowspan='".count($names)."'>".$row["group"]."</td><td>".$names[0]."</td></tr>";
    array_shift($names);
    foreach($names as $name){
        echo "<tr><td> </td><td>".$name."</td></tr>";
    }
}
echo "</table>";</code>
Nach dem Login kopieren

Fortgeschrittenes Problem: Gruppierung nach mehreren Feldern

Das Problem wird komplexer, wenn wir mehrere Felder zur Gruppierung zusammen mit zusätzlichen Daten einführen, die jeder Gruppe zugeordnet sind. Betrachten Sie beispielsweise die folgende Datenbank:

ID    meta_key  meta_value   name

1       group     1          John
2       group     1          Andrea
3       group     1          Jack
4       group     2          Mike
5       group     2          Kurt
6       group     3          Alice
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Ergebnisse nach mehreren Feldern gruppieren und zugehörige Daten anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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