gpt4 book ai didi

mysql - 基于带有子选择的 where 语句更新 mysql 中的列

转载 作者:行者123 更新时间:2023-11-29 05:01:28 24 4
gpt4 key购买 nike

我有这个伪 SQL 代码来实现我想要实现的目标:

UPDATE orders o
SET o.datePaid = null

WHERE
(
SELECT SUM(amount)
FROM transactions t
WHERE t.orderId = o.id
AND t.status = 'success'
AND t.type = 'refund'
)
>=
(
SELECT SUM(amount)
FROM transactions t
WHERE t.orderId = o.id
AND t.status = 'success'
AND t.type IN ('purchase', 'capture')
)

我如何在 SQL 中执行此操作?

最佳答案

我觉得你的方法很有趣。这是一个更简洁的方法:

UPDATE orders o
SET o.datePaid = null
WHERE (SELECT SUM(CASE WHEN t.type = 'refund' THEN amount
WHEN t.type IN ('purchase', 'capture') THEN -amount
END)
FROM transactions t
WHERE t.orderId = o.id AND
t.status = 'success'
) > 0;

关于mysql - 基于带有子选择的 where 语句更新 mysql 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58244553/

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