我有一家电子商务商店,每周一次,仓库只在另一张桌子上放置了价格已经改变的产品。如何使用另一个表中所选产品的新价格更新第一个表中的价格?如果不能仅使用mysql,请随意使用一些php。
我尝试了这个命令但是当SELECT没有找到匹配项时,它将原来的价格改为0而不是保持原状。
UPDATE product_catalogue pc
SET pc.price = (SELECT new_price
FROM product_catalogue_updated pcu
WHERE pc.product_id = pcu.product_id)
答案 0 :(得分:1)
UPDATE product_catalogue pc,product_catalogue_updated pcu
SET pc.price = pcu.new_price
WHERE pc.product_id = pcu.product_id
在使用此查询之前备份您的数据库
答案 1 :(得分:1)
这是一种可能的解决方案:
UPDATE product_catalogue pc
SET pc.price = (
SELECT new_price
FROM product_catalogue_updated pcu
WHERE pc.product_id = pcu.product_id
)
WHERE pc.product_id IN (
SELECT pcu.product_id FROM product_catalogue_updated pcu
)
<击> 这可能也有效: 击>
这不起作用(但会很好):
UPDATE product_catalogue pc
SET pc.price = (
SELECT new_price
FROM product_catalogue_updated pcu
WHERE pc.product_id = pcu.product_id
) AS pprice
WHERE pprice IS NOT NULL