Hasil Kumpulan MySQL mengikut Data Medan: Meneroka Penyelesaian untuk Manipulasi Data Kompleks
Dalam artikel ini, kami menyelidiki cabaran mengumpulkan dan memaparkan hasil daripada pangkalan data MySQL berdasarkan data medan tertentu. Khususnya, kami berhasrat untuk menangani senario di mana pangkalan data adalah serupa dengan ini:
ID Group Name 1 1 John 2 1 Andrea 3 1 Jack 4 2 Mike 5 2 Kurt 6 3 Alice
Masalah Asal: Pengumpulan Mengikut Medan Tunggal
Keperluan awal adalah untuk mempersembahkan data dalam format jadual, mengumpulkan mengikut medan "Kumpulan":
Group Name ----------------------- 1 John Andrea Jack ----------------------- 2 Mike Kurt ----------------------- 3 Alice -----------------------
Penyelesaian:
<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>
Masalah Lanjutan: Pengumpulan Mengikut Pelbagai Medan
Masalah menjadi lebih kompleks apabila kami memperkenalkan berbilang medan untuk pengumpulan, bersama-sama dengan data tambahan yang dikaitkan dengan setiap kumpulan. Sebagai contoh, pertimbangkan pangkalan data berikut:
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
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghimpunkan Keputusan MySQL mengikut Pelbagai Medan dan Paparan Data Berkaitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!