阅读量:3
在MySQL中将动态行转列可以使用GROUP_CONCAT函数以及动态SQL语句来实现。以下是一个示例代码:
假设有一个表格名为data,包含以下数据:
| id | name | value |
|---|---|---|
| 1 | attribute1 | 10 |
| 1 | attribute2 | 20 |
| 2 | attribute1 | 15 |
| 2 | attribute2 | 25 |
要将这些数据按照id进行行转列,可以使用以下SQL语句:
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(CASE WHEN name = ''',
name,
''' THEN value END) AS ',
name
)
) INTO @sql
FROM data;
SET @sql = CONCAT('SELECT id, ', @sql, ' FROM data GROUP BY id');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
运行以上代码后,将获得以下结果:
| id | attribute1 | attribute2 |
|---|---|---|
| 1 | 10 | 20 |
| 2 | 15 | 25 |
这样就实现了将动态行转列的功能。
以上就是关于“mysql动态行转列怎么实现”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm