如果那么+ 1到特定的行/列?

时间:2018-04-04 06:55:36

标签: mysql

所以我一直在研究一个新项目。我了解如何更新某个行列值:

UPDATE PlayerInfo SET GearLevel = GearLevel +1 WHERE UID = "76561198008596823" ;

但我想在其中添加一些支票。

用言语表达。

  

如果UID =" 76561198008596823" AND BankMoney = 25000000 AND GearLevel =   15那么GearLevel + 1和BankMoney - 15000000

所以我测试了:

UPDATE PlayerInfo SET GearLevel =
CASE WHEN GearLevel = 15 THEN GearLevel +1
Else
0
END ;

但是这只是在15列的所有值中加1。

如何将支票添加到CASE并减去BankMoney?或者有更简单的方法来实现这一目标吗?

1 个答案:

答案 0 :(得分:5)

您可能不需要在此处使用CASE表达式:

UPDATE PlayerInfo
SET
    GearLevel = GearLevel + 1,
    BankMoney = BankMoney - 15000000
WHERE
    UID = '76561198008596823' AND
    BankMoney = 25000000 AND
    GearLevel = 15;

如果您想要使用某个值更新每个记录,则需要CASE个表达式。然后,它的逻辑将让您仔细决定哪些记录得到更新。但是,如果您只想使用您提供给我们的三个条件(UID=7656...BankMoney=2500000GearLevel=15)定位帐户,那么您可以直接将其添加到WHERE子句中