首頁 >資料庫 >mysql教程 >當您缺乏 UNPIVOT 功能時,如何在 MySQL 中使用動態列逆透視資料?

當您缺乏 UNPIVOT 功能時,如何在 MySQL 中使用動態列逆透視資料?

Susan Sarandon
Susan Sarandon原創
2024-12-26 21:40:17606瀏覽

How to Unpivot Data with Dynamic Columns in MySQL When You Lack an UNPIVOT Function?

使用動態列逆透視資料

在查詢轉換領域,逆透視資料在重塑表結構中起著至關重要的作用。其中一個場景涉及將動態列轉置為行,MySQL 缺乏 UNPIVOT 函數可能會阻礙這項任務。

問題:轉置動態列

想像一個名為Table_1 的表具有代表不同屬性的動態列(abc、brt、ccc等),如所所示:

目標是將Table_1 轉換為Expected_Result_Table,將列列為行,僅包含非零值:

解:動態UNION ALL 和準備好的語句

為了完成這種轉換,我們可以利用UNION 的組合ALL和處理動態列的預先準備語句:

  1. 產生動態 SQL: 使用 information_schema.columns,我們可以產生為每個非零列選取行的動態 SQL。
  2. 準備語句:我們使用準備好的語句來執行動態SQL並避免潛在的SQL注入
  3. 執行語句:我們執行準備好的語句來檢索未透視的資料。

這是動態解的程式碼:

結果:

結果表將包含所需的行:

以上是當您缺乏 UNPIVOT 功能時,如何在 MySQL 中使用動態列逆透視資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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