[英]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.