Mysql
 sql >> Base de données >  >> RDS >> Mysql

cas lors de la requête de mise à jour MySQL PDO

n'essayez pas d'affecter la valeur à votre colonne dans les instructions CASE WHEN puisque vous le faites déjà.
le CASE WHEN sera évalué à la valeur qui satisfait la condition.
essayez ce code

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 

J'ai supprimé les affectations aux colonnes payées et dues dans l'instruction de cas.