如何使用.NET在MySQL和PDO中运行更新查询CASE WHEN。以下查询将CASE列更新为0。$query= "Update payments SET total = :total, paid = CASE WHEN paid > :new THEN paid = :new ELSE paid END, due = CASE WHEN paid < :new THEN due = :new - paid ELSE due END WHERE id = :id "; $update= $db->prepare($query); $update->bindparam(':total',$new); $update->bindparam(':new',$new); $update->bindparam(':id',$id); $update->execute();
1 回答
![?](http://img1.sycdn.imooc.com/533e4c5600017c5b02010200-100-100.jpg)
ABOUTYOU
TA贡献1812条经验 获得超5个赞
请勿尝试将值分配给CASE WHEN语句内的列,因为您已经在执行此操作。
CASE WHEN将评估为满足条件的值。
试试这个代码
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
我删除了case语句中对pay和due列的分配。
- 1 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消