如何在 MySQL 中建立未知列名的動態交叉表查詢?

Susan Sarandon
發布: 2024-10-27 14:07:01
原創
957 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板