mysql动态行转列怎么实现

avatar
作者
筋斗云
阅读量:0

在MySQL中将动态行转列可以使用GROUP_CONCAT函数以及动态SQL语句来实现。以下是一个示例代码:

假设有一个表格名为data,包含以下数据:

idnamevalue
1attribute110
1attribute220
2attribute115
2attribute225

要将这些数据按照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; 

运行以上代码后,将获得以下结果:

idattribute1attribute2
11020
21525

这样就实现了将动态行转列的功能。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!