首页 >数据库 >mysql教程 >如何在 MySQL 中创建具有整数列名的动态数据透视表?

如何在 MySQL 中创建具有整数列名的动态数据透视表?

DDD
DDD原创
2024-11-15 08:40:02500浏览

How to Create Dynamic Pivot Tables with Integer Column Names in MySQL?

MySQL 中的动态数据透视表

尝试生成具有动态列的数据透视表时,确保列名称是至关重要的正确处理。在所提供的情况下,user_id 是一个整数,如果格式不正确,可能会导致问题。

要解决此问题,需要将 user_id 值括在反引号 (`) 中以将它们指定为列名称,并防止它们被误解为数值。以下是修改后的查询:

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;

此修改可确保将 user_id 值视为列名称,从而生成一个数据透视表,其中动态列代表每个唯一的 user_id 及其相应的分数。

以上是如何在 MySQL 中创建具有整数列名的动态数据透视表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn