在 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中文网其他相关文章!