mysql将记录组合​​在同一列中

时间:2013-11-08 10:10:32

标签: mysql

在MySql数据库中,我有一个产品列表,我被要求从每个产品中取值WHERE fie_id=2,并将其插入值WHERE fie_id=6,以获得相同的pro_id < / p>

pro_id  fie_id  value
1       12      Kingston
1       11      kingston
1       10      Kingston
1       6       Late
1       1       Susceptible
1       7       N/A
1       9       feed
1       2       Medium bittersharp
1       5       Somerset late 19th C
1       3       Mid
2       9       Culinary
2       2       Sharp 
2       5       Devon 19th C
2       1       resistance
2       7       To Feb
2       6       Very late
2       3       3
2       10      .JPG
2       11      jpg

我花了很多时间阅读CONCAT,并相信这可能是我需要使用的,但我真的很难弄明白。我在正确的道路上吗?如果没有,有人可以指出我正确的方向。

所以我最终得到了

pro_id  fie_id  value
1       12      Kingston
1       11      kingston
1       10      Kingston
1       6       Late, Medium bittersharp
1       1       Susceptible
1       7       N/A
1       9       feed
1       5       Somerset late 19th C
1       3       Mid
2       9       Culinary
2       5       Devon 19th C
2       1       resistance
2       7       To Feb
2       6       Very late, Sharp
2       3       3
2       10      .JPG
2       11      jpg

1 个答案:

答案 0 :(得分:0)

您需要执行表连接自身的更新查询。

UPDATE details INNER JOIN
   (
    SELECT pro_id, value FROM details WHERE fie_id = 2
   ) det
ON details.pro_id = det.pro_id
SET details.value = CONCAT(details.value, ",", det.value)
WHERE details.fie_id = 6;

请参阅this sql fiddle