1.问题描述:现有一对多的数据,想将多行数据拼成一行
例如:
期望:
2.解决方法:
使用mysql 的group_concat
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
原查询:
select * from national_industry_keyword
目标查询:
select t.id,t.code,t.name,GROUP_CONCAT(t.keyword) des from national_industry_keyword t GROUP BY t.name
扩展:
可以对 group_concat内的拼接元素进行去重 或 排序 或使用指定分隔符
SELECT id,GROUP_CONCAT(DISTINCT keyword) FROM national_industry_keyword GROUP BY name
SELECT id,GROUP_CONCAT( keyword ORDER BY keyword ) FROM national_industry_keyword GROUP BY name
SELECT id,GROUP_CONCAT( keyword SEPARATOR ';' ) FROM national_industry_keyword GROUP BY name