Mysql
 sql >> Database >  >> RDS >> Mysql

caso quando nella query di aggiornamento MySQL PDO

non provare ad assegnare il valore alla tua colonna all'interno delle istruzioni CASE WHEN poiché lo stai già facendo.
il CASE WHEN valuterà il valore che soddisfa la condizione.
prova questo codice

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 

Ho rimosso le assegnazioni alle colonne pagate e dovute all'interno dell'estratto conto.