Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Fall, wenn in Update-Abfrage MySQL PDO

Versuchen Sie nicht, Ihrer Spalte innerhalb der CASE WHEN-Anweisungen den Wert zuzuweisen, da Sie dies bereits tun.
CASE WHEN wird zu dem Wert ausgewertet, der die Bedingung erfüllt.
Probieren Sie diesen Code aus

UPDATE payments SET 
 total = :total,
 paid = (CASE WHEN paid > :new THEN :new ELSE paid END),
 due = (CASE WHEN paid < :new THEN (:new - paid) ELSE due END)
 WHERE id = :id 

Ich habe die Zuweisungen zu bezahlten und fälligen Spalten in der Kundenvorgangsaufstellung entfernt.