jangan mencoba menetapkan nilai ke kolom Anda di dalam pernyataan CASE WHEN karena Anda sudah melakukannya.
CASE WHEN akan mengevaluasi ke nilai yang memenuhi kondisi.
coba kode ini
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
Saya menghapus tugas ke kolom dibayar dan jatuh tempo di dalam pernyataan kasus.