Mengumpulkan Keputusan MySQL mengikut Data Medan: Pendekatan Komprehensif
Apabila menyusun data dalam pangkalan data MySQL, ia sering menjadi perlu untuk mengumpulkan hasil berdasarkan pada nilai medan tertentu. Ini boleh dicapai menggunakan sama ada pertanyaan SQL atau kod PHP.
Menggunakan Pertanyaan SQL
Untuk contoh pertama, di mana anda ingin mengumpulkan data berdasarkan "Kumpulan" medan, anda boleh menggunakan pertanyaan SQL mudah seperti ini:
SELECT Group, GROUP_CONCAT(Name) AS Names FROM table_name GROUP BY Group
Pertanyaan ini akan menggabungkan semua nama yang dikaitkan dengan setiap kumpulan menggunakan fungsi GROUP_CONCAT() dan mengembalikan hasil yang dikumpulkan mengikut medan "Kumpulan".
Menggunakan PHP
Jika anda lebih suka menggunakan PHP, anda boleh menyambung ke pangkalan data dan melaksanakan pertanyaan seperti berikut:
<code class="php">$dbc = new MySQLi(DBHOST, DBUSER, DBPASS, DB); $result = $dbc->query("SELECT Group, GROUP_CONCAT(Name) AS Names FROM table_name GROUP BY Group"); while ($row = $result->fetch_assoc()) { $names = explode(",", $row["Names"]); echo "<tr><td>{$row["Group"]}</td><td>{$names[0]}</td></tr>"; // Print the first name foreach ($names as $name) { // Print remaining names echo "<tr><td></td><td>{$name}</td></tr>"; } }</code>
Kumpulan Bersarang dengan Berbilang Jadual
Untuk contoh yang lebih kompleks di mana anda mempunyai berbilang jadual dan nilai "koef" tambahan, anda boleh menggunakan pertanyaan bersarang atau gabungan SQL dan PHP untuk mencapai yang diingini pengumpulan.
Penyelesaian PHP yang berkemungkinan
Berikut ialah penyelesaian PHP yang mungkin untuk senario ini:
<code class="php">$dbc1 = new MySQLi(DBHOST, DBUSER, DBPASS, DB1); $dbc2 = new MySQLi(DBHOST, DBUSER, DBPASS, DB2); $groups_query = "SELECT Group, GROUP_CONCAT(Name) AS Names FROM table1 GROUP BY Group"; $coefs_query = "SELECT meta_value, title, group FROM table2"; $groups_result = $dbc1->query($groups_query); $coefs_result = $dbc2->query($coefs_query); while ($group = $groups_result->fetch_assoc()) { echo "<tr><td>{$group["Group"]}</td><td>{$group["Names"]}</td></tr>"; $coefs_result->data_seek(0); // Reset pointer to beginning of coefs result set while ($coef = $coefs_result->fetch_assoc()) { // Loop through coefs result set if ($coef["group"] == $group["Group"]) { echo "<tr><td></td><td>{$coef["title"]}</td><td>{$coef["meta_value"]}</td></tr>"; } } }</code>
Penyelesaian ini menggabungkan pertanyaan SQL untuk mendapatkan semula kumpulan dan nama serta menggunakan PHP untuk mengulangi keputusan dan mendapatkan semula coef dan tajuk daripada jadual kedua.
Atas ialah kandungan terperinci Cara Menghimpunkan Keputusan MySQL mengikut Data Medan: Panduan Komprehensif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!