You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prestashop 1.7多店铺批量更新商品价格MySQL语句求助

批量更新ps_product_shop表指定商品和店铺的价格

根据你的需求,要批量将指定商品在目标店铺的价格更新为同商品在源店铺价格的25倍,这里提供两种可靠的批量更新方案:

方案1:批量更新所有商品的目标店铺价格

如果需要一次性更新所有商品在店铺ID为3的价格(以店铺ID为1的对应商品价格为基准乘以25),可以使用UPDATE JOIN语句,这比多条单条更新语句效率更高:

UPDATE ps_product_shop target
JOIN ps_product_shop source 
  ON target.id_product = source.id_product 
  AND source.id_shop = 1
SET target.price = source.price * 25
WHERE target.id_shop = 3;

语句说明:

  • target 别名代表需要更新的目标记录(店铺3的行)
  • source 别名代表价格来源的记录(店铺1的对应商品行)
  • 通过id_product关联两张表,确保更新的是同一商品的价格
  • WHERE 子句限定只更新店铺3的记录

方案2:批量更新指定商品的目标店铺价格

如果只需要更新特定商品ID(比如商品1和2)的店铺3价格,可以在语句中添加id_product的过滤条件:

UPDATE ps_product_shop target
JOIN ps_product_shop source 
  ON target.id_product = source.id_product 
  AND source.id_shop = 1
SET target.price = source.price * 25
WHERE target.id_shop = 3
  AND target.id_product IN (1, 2);

验证结果

执行上述语句后,你的表数据会符合预期:

  • 商品1在店铺3的价格保持25(1*25)
  • 商品2在店铺3的价格保持50(2*25)

为什么单条语句转批量容易失效?

如果尝试用子查询批量更新,可能会因为子查询返回多行结果导致语法错误,而UPDATE JOIN的方式通过关联表的方式,能安全且高效地完成批量更新操作。

内容的提问来源于stack exchange,提问作者Mailo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 15:51:01