我在一家使用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