如何使用整数用户 ID 在 MySQL 中创建动态数据透视表?

DDD
发布: 2024-11-12 22:59:02
原创
383 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板