繁体   English   中英

如何使用mysql中同一表的结果更新行?

[英]How to update rows using results from the same table in mysql?

如何使用mysql中同一表的结果更新行?

像这样...

UPDATE `ps_product_lang`
   SET `description` = (
         SELECT `description`
           FROM `ps_product_lang`
          WHERE `id_product` = 300003)
WHERE `id_product` = 300003

我遇到了错误

#1093-您无法在FROM子句中指定目标表“ ps_product_lang”进行更新

  1. 我可以在MySQL上做吗?
  2. 什么是正确的查询?

使用联接:

UPDATE ps_product_lang AS p1
CROSS JOIN ps_product_lang AS p2
SET p1.description = p2.description
WHERE p1.id_product = 300003
AND p2.id_product = 300003

您是否真的要在源和目标中使用相同的id_product 那什么也没做。

对不起,

这是答案:

UPDATE ps_product_lang AS p1
CROSS JOIN ps_product_lang AS p2
SET p1.description = p2.description
WHERE p1.id_product = 300003 and p1.`id_lang` =3
AND p2.id_product = 300003 and p2.`id_lang` =1

Barmar-谢谢! :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM