Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

caso quando em consulta de atualização MySQL PDO


não tente atribuir o valor à sua coluna dentro das instruções CASE WHEN, pois você já está fazendo isso.
o CASE WHEN avaliará o valor que satisfaz a condição.
tente este código
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 

Eu removi as atribuições para as colunas pagas e devidas dentro da instrução case.