mixmastertobsi: langsame MySQL Abfrage

Beitrag lesen

Hallo,

ich habe eine SQL-Abfrage, welche etwas langsam ist, weil hier bei jedem Aufruf ein UPDATE gemacht wird.

UPDATE auftrag 
SET gesamtpreis = (SELECT SUM(auftrag_artikel.menge*auftrag_artikel.preis) FROM auftrag_artikel WHERE auftrag_artikel.auftragnr=auftrag.auftragnr) + auftrag.gutschein + auftrag.rabatt + auftrag.versandkosten)
WHERE auftrag.auftragnr='$id'

Grundsätzlich ändert sich hier ja nicht permanent etwas, weshalb ich nun das Script umgeschrieben habe.

Als erstes wird per SELECT die Summe errechnet und wenn diese zum Gesamtpreis unterschiedlich ist, soll ein UPDATE gemacht werden.

Meine Frage hierzu. Den Abgleich, ob die Summe unterschiedlich ist, mache ich in PHP mit IF(). Gibt es eine Möglichkeit, dies ohne PHP elegant zu lösen und das NUR das Update gemacht wird, wenn errechnete Summe und Gesamtpreis unterschiedlich ist?!?