我在一家使用 OpenCart 电子商务的电子商店担任管理员,最近他们要求我为 Bulk 产品添加特价并让它运行几天。当然,我可以在管理页面中一一更改。事情是我如何通过 phpMyAdmin 更改它。
( Opencart 版本 2.1.0.1 )
我有 46 种产品,价格为 25 欧元,我必须将特价添加到 20 欧元。
我们要更新价格的表是
oc_product_special
我们必须更新的专栏是
oc_product_special.price
当然,我们需要从餐桌上花费 25 欧元的产品
oc_product
从该表中检索产品并将特价添加到 20 欧元</p>
问题是如何连接这两个表,这样我就可以添加要运行的 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€</p>
错误
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“FROM oc_product
INNER JOIN oc_product_special
ON oc_product
.product_id =”附近使用正确的语法
**编辑
更新我的 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 ' 附近使用正确的语法