为了账号安全,请及时绑定邮箱和手机立即绑定

更新查询MySQL PDO时的情况

更新查询MySQL PDO时的情况

PHP
互换的青春 2021-04-10 13:15:18
如何使用.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 回答

?
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列的分配。


查看完整回答
反对 回复 2021-04-23
  • 1 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信