Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Pertanyaan Cross-Tab Dinamik dalam MySQL dengan Nama Lajur Tidak Diketahui?
Tab Silang MySQL Dinamik dengan Lajur Tidak Diketahui
Dalam MySQL, pertanyaan tab silang tradisional memerlukan penetapan nombor dan nama lajur semasa penyediaan pertanyaan . Walau bagaimanapun, apabila bilangan lajur tidak diketahui, seperti dalam kes pertanyaan silang tab dinamik, pendekatan berbeza diperlukan.
Terdapat dua penyelesaian utama yang melibatkan penulisan kod aplikasi:
1. Pertanyaan Nilai Berbeza dan Bina Pertanyaan:
Contoh:
<code class="php">foreach ($pdo->query("SELECT DISTINCT `way` FROM `MyTable`") as $row) { $way_array[] = "MAX(IF(`way`=$way, `time`)) AS way_$way"; } $pivotsql = "SELECT stop, " . join(",", $way_array) . " FROM `MyTable` GROUP BY `stop`";</code>
2. Pertanyaan Baris demi Baris dan Pangsi dalam Kod:
Contoh:
<code class="php">$stoparray = array(); foreach ($pdo->query("SELECT * FROM `MyTable`") as $row) { $stopkey = $row["stop"]; if (!array_key_exists($stopkey, $stoparray)) { $stoparray[$stopkey] = array("stop" => $stopkey); } $waykey = "way_" . $row["way"]; $stoparray[$stopkey][$waykey] = $row["time"]; }</code>
Dengan menggunakan salah satu pendekatan ini, anda boleh melakukan pertanyaan tab silang dinamik dalam MySQL walaupun bilangan lajur tidak diketahui , membolehkan fleksibiliti dan menampung struktur data yang berkembang.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Pertanyaan Cross-Tab Dinamik dalam MySQL dengan Nama Lajur Tidak Diketahui?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!