繁体   English   中英

如何在mysql或php中向数据列显示动态数据行?

[英]How to show dynamic data row to data column in mysql or within php?

我有同样的问题(MySQL 或 PHP 将行转换为列)[ Mysql MySQL 或 PHP 将行动态转换为两列 但具有不同的标题列格式。

我的数据库表

在此处输入图片说明

我已经完成了这个问题,下面是我的查询版本:

SELECT GROUP_CONCAT(
      'MAX(IF(day(tanggal) = ',
      day(tanggal),
      ', presensi, NULL)) AS `',
      tanggal,
      '`, '
    order by tanggal
  ) INTO @sql
  FROM tableName;

运行查询时,它显示通知“查询执行正常,1 行受影响。 ”,但结果为空,这是该表预期的样子

在此处输入图片说明

创建您的静态查询:

select id_pegawai, 
max(if(tanggal="2019-06-13", presensi, null)) as "2019-06-13",
max(if(tanggal="2019-06-14", presensi, null)) as "2019-06-14"
from yourtable
group by id_pegawai;

创建动态查询:

  SET @sql = NULL;
    SELECT
     GROUP_CONCAT(
      DISTINCT
        CONCAT(
            'max(if(tanggal="', 
            tanggal, 
            '", presensi, null)) as "',
            tanggal,
            '"'
        )
     ) into @sql
    FROM yourtable;
    SET @sql = CONCAT('SELECT id_pegawai, ',
                        @sql, ' FROM yourtable GROUP BY id_pegawai');

执行您的动态查询:

    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;

灵感来自这篇文章: http : //buysql.com/mysql/14-how-to-automate-pivot-tables.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM