Bagaimanakah Saya Boleh Menghimpunkan Keputusan MySQL mengikut Pelbagai Medan dan Paparan Data Berkaitan?

Patricia Arquette
Lepaskan: 2024-11-06 12:50:03
asal
926 orang telah melayarinya

How Can I Group MySQL Results by Multiple Fields and Display Associated Data?

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

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

Penyelesaian:

  • Pertanyaan MySQL: Menggunakan fungsi GROUP_CONCAT, kita boleh menggabungkan nilai unik daripada medan "Nama" untuk setiap nilai "Kumpulan" unik:
<code class="sql">SELECT
p.Group as 'group',
GROUP_CONCAT(name) as names
FROM prueba p
GROUP BY p.Group</code>
Salin selepas log masuk
  • Pelaksanaan PHP: Untuk memaparkan keputusan dalam jadual HTML, kami boleh mendapatkan semula data daripada pertanyaan dan memprosesnya menggunakan PHP:
<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>
Salin selepas log masuk

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

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!

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!