gpt4 book ai didi

php - 更新查询 MySQL PDO 时的情况

转载 作者:可可西里 更新时间:2023-11-01 08:23:31 26 4
gpt4 key购买 nike

如何使用 CASE WHEN 在 MySQL 和 PDO 中运行更新查询。以下查询将 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();

最佳答案

不要尝试在 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 语句中已付和到期列的分配。

关于php - 更新查询 MySQL PDO 时的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55672688/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com