利⽤GROUP_CONCAT和GROUPBY实现字段拼接
在开发过程中遇到这样的⼀个需求,通过GROUP BY分组归类后将同属性的字段进⾏拼接。
表结构为:
id            value
1                a
1                b
1                c
2                a
2                b
需要得到结果:
id            value
1              a,b,c
2              a,b
⼀开始在⽹上到的解决办法是利⽤SQL中的STUFF⽅法,但是经过测试发现该⽅法⽆法使⽤,提⽰STUFF⽅法不存在的错误,猜测可能是MYSQL SERVER 版本的问题。由于通过STUFF⽅法进⾏拼接的SQL语句过于复杂且暂时不到STUFF⽅法不存在的原因,弃⽤。
之后选择GROUP_CONCAT⽅法,具体SQL语句如下:
SELECT id, GROUP_CONCAT(value) value FROM table GROUP BY id
如果需要将不同字段进⾏拼接,⽅法如下:
groupby分组GROUP_CONCAT(attr1,"连接字符的符号",attr2)
如果只是需要将同⼀条记录的字段拼接可以使⽤concat:
select concat(snon,sname,saddress) as串联字符串from stud