首頁  >  文章  >  資料庫  >  如何在 MySQL 中動態建立具有不同列名的交叉表?

如何在 MySQL 中動態建立具有不同列名的交叉表?

Barbara Streisand
Barbara Streisand原創
2024-10-28 08:09:01161瀏覽

How to Dynamically Create Cross-Tabulations in MySQL with Varying Column Names?

MySQL 動態交叉表

問題:

考慮一個包含以下屬性的表格:方式」、「停止」和「時間」。目標是將這些資料轉換為交叉表格式,其中列代表不同的「方式」值,行代表「停止」值。每個單元格包含對應「方式」和「停止」組合記錄的最大「時間」。

動態解決方案:

MySQL 的限制規定了列名稱和數字必須在查詢執行期間修復。為了克服這項挑戰,請考慮兩種基於應用程式的方法:

選項1:查詢不同值

  • 使用SELECT DISTINCT 查詢來擷取不同的「way 」值.
  • 透過將必要的MAX(IF()) 子句附加到SELECT 清單來動態建構資料透視查詢。
  • 執行產生的資料透視查詢以獲得所需的交叉表結果。建立一個關聯數組,將「stop」儲存為鍵,將「way」值和對應的「time」值儲存為值。的數組。

實作:

    對於選項 1:
  • 對於選項 2:

以上是如何在 MySQL 中動態建立具有不同列名的交叉表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn