không cố gắng gán giá trị cho cột của bạn bên trong câu lệnh CASE WHEN vì bạn đang làm điều đó.
CASE WHEN sẽ đánh giá giá trị thỏa mãn điều kiện.
hãy thử mã này
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
Tôi đã xóa các nhiệm vụ cho các cột đã trả và đến hạn bên trong bảng sao kê.