0

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

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 不确定如何执行此方法,尽管再次感谢任何建议,谢谢

4

2 回答 2

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
于 2012-10-26T15:08:17.293 回答
0
Update table t1, table t2 
SET t1.column2 = t2.column2 
WHERE t1.column1 = 106 AND t2.column1 = 706
于 2012-10-26T15:08:35.613 回答