我在一家使用OpenCart电子商务的电子商店中担任管理员职务,最近他们要求我向散装产品添加特价,并让其运行数天。当然,我可以在管理页面中逐一更改它。事情是我可以通过phpMyAdmin改变它。
(Opencart版本2.1.0.1)Opencart - phpMyAdmin批量更新特价
我有46件产品,其价格为25欧元,我必须将特价加到20欧元。
表,我们必须更新价格
oc_product_special
和专栏中,我们必须更新是
oc_product_special.price
当然,我们需要的产品,花费25€从表
oc_product
从该表中检索产品并添加特价至20€
事情是如何连接这两个表,所以我可以添加特殊的价格,哪些SQL查询运行,所以我可以实现这一点。
oc_product & oc_product_special , update this column oc_product_special.price
我已经尝试运行该SQL查询,但我收到错误
UPDATE `oc_product_special`.price
SET `oc_product_special`.price = 16.1290
FROM `oc_product`
INNER JOIN `oc_product_special`
ON `oc_product`.product_id =`oc_product_special`.product_id
WHERE`oc_product`.price = 20.1612;
****价格为不含税25€/ 1.24(税率)= 20.1612€
错误 #1064 - 您的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的正确语法手册 'FROM oc_product
INNER JOIN oc_product_special
ON oc_product
.product_id =' 第2行
** 编辑
更新我的SQL查询
UPDATE oc_product_special AS ps
INNER JOIN oc_product op ON ps.product_id = op.product_id
set ps.price = 16.1290
where op.price = 20.1612
但事情是0行受到影响。 (查询花了0.0003秒),如果我运行这些价格选择查询我有结果。
select *
from oc_product as op
where op.price=20.1612
显示第0 - 29行(总计46个,查询需要0个。0010秒)
***** 更新第二次
首先我跑
DELETE FROM `oc_product_special`
WHERE product_id IN
(
SELECT product_id
FROM oc_product p
WHERE p.price = 20.1612
);
这样我就可以“从这些产品中删除任何现有特价”,这个查询运行没有任何问题
之后,我试着跑插入查询
INSERT INTO `oc_product_special` (`product_special_id`, `product_id`, `customer_group_id`, `priority`, `price`, `date_start`,`date_end`)
VALUES
(
SELECT NULL, 78, 1, 0, 16.1290, 0000-00-00, 0000-00-00
FROM oc_product p
WHERE p.price = 20.1612
);
我调整了关于我的表格数据的数据。但我收到此错误
#1064 - 您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以便在第4行'SELECT NULL,78,1,0,16.1290,0000-00-00,0000-00-00 FROM oc_product p'附近使用正确的语法。
阅读本文可能有所帮助:http://dev.mysql.com/doc/refman/5.7/en/update.html – billynoah
@billynoah已编辑,现在有正确的语法,但我没有收到任何结果 –
我看到你已经接受了一个答案 - 这是否意味着你的问题解决了? – billynoah