gpt4 book ai didi

php - 如何从 2 列中减去值

转载 作者:太空宇宙 更新时间:2023-11-03 11:23:44 24 4
gpt4 key购买 nike

如果值 > 50,我想使用 PHP 从 coins 列中减去 50,如果不是,则从 'e-coins' 中减去。

Users Table:

this is the sample
id |user |coins |e-coins|
1 |axxx |100 |100 |
2 |bxxx |100 |0 |
3 |cxxx |0 |100 |
and this is the result i want
1 |axxx |50 |100 |
2 |bxxx |50 |0 |
3 |cxxx |0 |50 |

PHP:

    $db->Query("UPDATE `users` SET `coins`=`coins`-'50' WHERE `id`='".$sit['user']."'");

“硬币”列中的值可能是 100我列的“电子硬币”可能是 100

我想从“硬币”列中减去 50 并保留电子硬币原样,但如果“硬币”列小于 50 或没有任何值(value),那么从“电子硬币”列中减去我该怎么做?

最佳答案

假设您的 colum coins 数据类型是数字

$db->Query("
UPDATE `users`
SET `coins`= case when `coins` > 50 then coins - 50 else coins end,
`e-coins` = case when `coins` <= 50 then `e-coins` - 50 else `e-coins` end

where ....

可能是你的硬币和电子硬币列不是数字所以尝试转换为整数

  UPDATE users 
SET coins= case when (CAST(coins) AS INT coins) > 50 then coins - 50 else coins end,
`e-coins` = case when(CAST(coins) AS INT coins) <= 50 then `e-coins` - 50 else `e-coins` end
WHERE id= 'id'

似乎在直接更新的第二种情况下使用 coin 会造成一些麻烦,所以我尝试使用带有 sublery 的内部连接来选择这种情况,并且这个 houd 工作正常

update users 
inner join (
select id,
case
when coins > 50
then coins - 50
else coins
end coins ,
case
when coins <= 50
then `e-coins` - 50
else `e-coins`
end `e-coins`
from users ) t ON t.id = users.id
and users.id = your_id_value
set users.coins = t.coins,
users.`e-coins` = t.`e-coins`

关于php - 如何从 2 列中减去值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56478290/

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