我对How to use GROUP BY to concatenate strings in MySQL?提出了类似的问题,但是对于mytable
表的这个例子
id string aggr
1 A NULL
1 B NULL
2 F NULL
不同之处在于我需要更新表格以获得此结果:
id string aggr
1 A A|B|
1 B A|B|
5 C C|E|C|
5 E C|E|C|
5 C C|E|C|
2 F F|
结果相同的id
我们有相同的newcolumn
值。
在字符串的最后添加分隔符|
绝对没问题。这样,我可以更快地计算newcolumn
中有多少“项目”,而不添加+1
,因为最后的缺席(仅在中间)。另外,当我将另一部分或两部分附加到aggr
列时,我不会关心验证(如果我之前有管道)。
谢谢。
答案 0 :(得分:2)
您可以尝试此查询:
swap()
答案 1 :(得分:1)
你可以在原始表
上加入group_concatselect a.id, a.string , b.aggr
from my_table a
inner join (
select id, group_concat(string SEPARATOR '|') as aggr
from my_table
group by id
) b on a.id = b.id