【发布时间】:2017-07-26 19:35:36
【问题描述】:
我有一个与 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 列时,我不会关心验证(如果我之前有一个管道)。
谢谢。
【问题讨论】:
-
您真的需要更新表格,还是只在视图中显示结果?您可以使用 group_concat 将多行合并为 1,并实际使用 count 函数来计算给定 ID 的字符串数。
-
是的,我需要更新一个表。是的,我知道该表将包含冗余数据。
标签: php mysql string concatenation aggregate