未知列的動態MySQL 交叉表
在MySQL 中,傳統的交叉表查詢需要在查詢準備期間固定列的數量和名稱。但是,當列數未知時,例如動態交叉表查詢,則需要不同的方法。
涉及編寫應用程式程式碼的主要解決方案有兩種:
1。查詢不同值並建構查詢:
範例:
<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.在程式碼中逐行查詢與透視:
<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>
以上是如何在 MySQL 中建立未知列名的動態交叉表查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!