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

tilfælde, når i opdateringsforespørgsel MySQL PDO

prøv ikke at tildele værdien til din kolonne inde i CASE WHEN-sætningerne, da du allerede gør det.
CASE WHEN vil evaluere til den værdi, der opfylder betingelsen.
prøv denne kode

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 

Jeg fjernede tildelingerne til betalte og forfaldne kolonner inde i sagsopgørelsen.




  1. Hvornår vil en korrekt SQL give et forkert resultat

  2. Konverter varchar til datetime i SQL Server

  3. Skal databasens primære nøgler være heltal?

  4. mysql forespørgselsovervågningsværktøj