将值复制到列值等于的另一个字段

时间:2012-10-26 15:02:06

标签: mysql

我试图通过使用其他列值将列中的一个值复制到同一列中的另一个值,例如:

column 1 - column 2
703 - /2/3/image.jpg
106 - "empty"
100 - description

所以我希望它复制第2列的值,其中第1列的值= 706并放入第2列,其中第1列的值= 106,因此保留描述位。有没有人知道这样做的查询?

谢谢, 西蒙

注意:

在提出建议时收到以下错误

1093 - 您无法在FROM子句

中为更新指定目标表'mage_catalog_product_entity_varchar'

谢谢你再次回复:需要在INNER JOIN中添加不确定如何做这个方法虽然任何建议再次受到赞赏,谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用子查询来执行此操作,如下所示:

update tablename set column2 = (select column2 from tablename where column1 = 706 limit 1) where column1 = 106;

修改
事实证明,您不能拥有引用要更新的表的子查询。因此,您需要使用INNER JOIN(请参阅此处的答案:https://stackoverflow.com/a/4268431/1095946)。

尝试这样的事情:

UPDATE mage_catalog_product_entity_varchar t1, mage_catalog_product_entity_varchar t2
SET t1.value = t2.value
WHERE t1.attribute_id = 106
  AND t2.attribute_id = 703

答案 1 :(得分:0)

Update table t1, table t2 
SET t1.column2 = t2.column2 
WHERE t1.column1 = 106 AND t2.column1 = 706