在 MySQL 中建立具有整數列名稱的動態資料透視表帶來了一些挑戰。當執行提供的查詢時,如果 user_id 值為整數,則可能會遇到錯誤。為了解決這個問題,我們需要將 user_id 值用反引號 (`) 括起來。
調整後的 SQL 查詢如下所示:
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;
這裡的關鍵修改是加入了反引號GROUP_CONCAT 語句中的 user_id 值周圍。透過這樣做,我們確保 user_id 值被視為字串而不是列名。
SQL Fiddle 示範: https://sqlfiddle.com/#!2/eab24/ 4
現在,即使使用整數user_id 值,也會成功產生動態數據透視表。
以上是如何在 MySQL 中使用整數列名建立動態資料透視表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!