未知列的动态 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 中执行动态交叉表查询,实现灵活性并适应不断发展的数据结构。
以上是如何在 MySQL 中创建未知列名的动态交叉表查询?的详细内容。更多信息请关注PHP中文网其他相关文章!