mysql:特殊使用concat

时间:2012-04-10 10:45:40

标签: mysql concat

我有表A和B,有多对一的关联(b包含fk_a)。我们假设样本表如下:

A:

id first 
1  sample
2  sample

B:

id fk_a  type value
1  1      som  thing
2  1      oth  other
3  2      som  thing
4  2      oth  any

我希望表A中的“第一”列是唯一的,我希望通过以下方式实现它:

期望的A:

id first 
1  sample-thing-other
2  sample-thing-any

是否可以使用纯MYSQL在表A上使用UPDATE和CONCAT来获得所需的更新?

如果我把所有东西都放在一张桌子里就可以轻松了,我可以写一下

UPDATE A 
SET first = CONCAT(first, value)

但不幸的是,我有多对一的关联,我不确定在这种情况下是否有可能。

2 个答案:

答案 0 :(得分:1)

Group_Concat是你的朋友。

但是我可以提醒你第一次正常吗?

答案 1 :(得分:1)

我没有mysql的实例,也没有测试它。使用group_concat

UPDATE A, (SELECT fk_a, GROUP_CONCAT(value SEPARATOR '-') as concat_value FROM B GROUP BY fk_a) AS t

SET A.first = CONCAT(A.first, '-', t.concat_value) 

WHERE A.id = t.fk_a;