sql >> Base de Datos >  >> RDS >> Mysql

caso cuando en consulta de actualización MySQL PDO

no intente asignar el valor a su columna dentro de las declaraciones CASE WHEN ya que ya lo está haciendo.
CASE WHEN evaluará el valor que satisface la condición.
pruebe 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 

Eliminé las asignaciones a las columnas pagadas y vencidas dentro de la declaración del caso.