所以我一直在研究一个新项目。我了解如何更新某个行列值:
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?或者有更简单的方法来实现这一目标吗?
答案 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=2500000
和GearLevel=15
)定位帐户,那么您可以直接将其添加到WHERE
子句中