Rumah  >  Artikel  >  pangkalan data  >  Cara Menghimpunkan Keputusan MySQL mengikut Data Medan: Panduan Komprehensif

Cara Menghimpunkan Keputusan MySQL mengikut Data Medan: Panduan Komprehensif

Patricia Arquette
Patricia Arquetteasal
2024-11-07 07:09:02607semak imbas

How to Group MySQL Results by Field Data: A Comprehensive Guide

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn