Ich arbeite als Administrator in einem elektronischen Shop, wir verwenden OpenCart eCommerce und vor kurzem haben sie mich gebeten, Bulk-Produkten einen Sonderpreis hinzuzufügen und es für einige Tage laufen zu lassen. Natürlich kann ich es in der Admin-Seite einzeln ändern. Die Dinge sind, wie ich es durch phpMyAdmin ändern kann.
(Opencart Version 2.1.0.1)Opencart - phpMyAdmin Bulk update Sonderpreis
Ich habe 46 Produkte, die 25 € kosten und ich muss Sonderpreis zu 20 € hinzufügen.
Tabelle haben wir Preis zu aktualisieren ist
oc_product_special
und Spalte wir aktualisieren müssen, ist
oc_product_special.price
Natürlich brauchen wir Produkte, die aus der Tabelle 25 € kosten
oc_product
Produkte aus dieser Tabelle abrufen und Sonderpreis zu 20 €
hinzufügenDie Sache ist, wie man diese zwei Tabellen anschließt, also kann ich speziellen Preis addieren, die sql Abfrage laufen lassen, also kann ich dieses erreichen.
oc_product & oc_product_special , update this column oc_product_special.price
Ich habe versucht,‘Diese SQL-Abfrage auszuführen, aber ich erhalten Fehler
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;
**** Preis ohne Steuern beträgt 25 €/1,24 (Steuersatz) = 20,1612 €
Fehler # 1064 - Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in die Bedienungsanleitung zu Ihrer MySQL-Server-Version für die richtige Syntax entspricht in der Nähe zu verwenden 'FROM oc_product
INNER oc_product_special
ON oc_product
.product_id = JOIN' in Zeile 2
Jede Hilfe sehr geschätzt wird
** EDIT
Aktualisierung meiner SQL-Abfrage
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
aber die Sache ist, dass 0 Zeilen betroffen sind. (Abfrage dauerte 0,0003 Sekunden), wenn ich Select-Abfrage mit diesen Preisen ausführen, habe ich Ergebnisse.
Zeige Zeilen 0 - 29 (46 insgesamt, Query hat 0.0010 sec)
***** Aktualisiert 2. Mal
Zuerst lief ich
DELETE FROM `oc_product_special`
WHERE product_id IN
(
SELECT product_id
FROM oc_product p
WHERE p.price = 20.1612
);
, so kann ich "entfernen Sie alle vorhandenen Angebote aus diesen Produkten", lief diese Abfrage ohne Problem
Danach habe ich versucht, lief Insert Abfrage
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
);
Ich habe meine Daten bezüglich der Daten meines Tisches angepasst. Aber ich erhalte diesen Fehler
# 1064 - Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in die Bedienungsanleitung zu Ihrer MySQL-Server-Version für die richtige Syntax entspricht in der Nähe zu verwenden 'NULL SELECT, 78, 1, 0, 16,1290, 0000-00-00, 0000-00-00 VON oc_product p' in Zeile 4
Das Lesen könnte helfen: http://dev.mysql.com/doc/refman/5.7/en/update.html – billynoah
@billynoah Beitrag bearbeitet, hat die richtige Syntax jetzt, aber ich erhalte keine Ergebnisse –
Ich sehe, du hast eine Antwort akzeptiert - bedeutet das, dass dein Problem gelöst ist? – billynoah