首頁 > 資料庫 > mysql教程 > 如何使用整數使用者 ID 在 MySQL 中建立動態資料透視表?

如何使用整數使用者 ID 在 MySQL 中建立動態資料透視表?

DDD
發布: 2024-11-12 22:59:02
原創
394 人瀏覽過

How to Create a Dynamic Pivot Table in MySQL with Integer User IDs?

MySQL 中的動態資料透視表

使用資料庫時,建立資料透視表來彙總多列資料通常很有用。然而,當列名稱是動態的時,它可能會帶來挑戰。本文探討如何在 MySQL 中建立動態資料透視表,特別是當使用者 ID 為整數時。

在使用者提供的範例中,當使用者 ID 為整數時查詢失敗,但當使用者 ID 為整數時查詢正常那是一條繩子。出現問題的原因是這些值直接用作列名稱。要解決此問題,需要將值括在反引號 (`) 中以建立有效的列名稱。

例如,而不是:

max(case when user_id = 1 then score end) as 1
登入後複製

修正的語法將是:

max(case when user_id = 1 then score end) as `1`
登入後複製

此外,動態選擇列時,也必須包含反引號。更正後的查詢如下所示:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'max(case when user_id = ''',
      user_id,
      ''' then score end) AS `',
      user_id, '`'
    )
  ) INTO @sql
FROM  measure2;

SET @sql = CONCAT('SELECT inspection_date, ', @sql, ' 
                  FROM measure2 
                  GROUP BY inspection_date');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
登入後複製

透過進行這些調整,即使使用者 ID 是整數,也可以成功產生資料透視表。

以上是如何使用整數使用者 ID 在 MySQL 中建立動態資料透視表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板