如何在 MySQL 中创建未知列名的动态交叉表查询?

Susan Sarandon
发布: 2024-10-27 14:07:01
原创
863 人浏览过

How to Create Dynamic Cross-Tab Queries in MySQL with Unknown Column Names?

未知列的动态 MySQL 交叉表

在 MySQL 中,传统的交叉表查询需要在查询准备期间固定列的数量和名称。但是,当列数未知时,例如动态交叉表查询,则需要不同的方法。

涉及编写应用程序代码的主要解决方案有两种:

1。查询不同值并构造查询:

  • 检索未知列(例如,way)的不同值。
  • 通过连接不同值来构造一个枢轴查询SELECT 列表列。
  • 示例:

    <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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!