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
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 -----------------------
Lösung:
<code class="sql">SELECT p.Group as 'group', GROUP_CONCAT(name) as names FROM prueba p GROUP BY p.Group</code>
<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>
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
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!