Cara Menghimpunkan Keputusan MySQL mengikut Data Medan: Panduan Komprehensif

Patricia Arquette
Lepaskan: 2024-11-07 07:09:02
asal
607 orang telah melayarinya

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
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!