【发布时间】:2012-11-20 04:34:50
【问题描述】:
我有一个表playerspoints,其中包含一个商店 ID 和一个玩家的 ID,以及一个玩家的积分。
SHOP_ID | PLAYER_ID | POINTS
----------------------------------------
1 | 7 | 66
2 | 4 | 33
我想做的是将积分从一家商店转移到另一家。
- 问题:商店 id 和玩家 id 形成一个唯一索引。
- 我想要做的是重复密钥更新,而不是让它失败,将一个条目的点添加到另一个条目并删除“来自”条目。
类似:
UPDATE `playerspoints`
SET `boardId`=$to
WHERE `boardId`=$from
ON DUPLICATE KEY UPDATE `points`=....
你明白了吗?
【问题讨论】:
-
我的猜测是,使用 2(ish) 查询和 if/else 块会更简单。你想这样做有什么特别的原因吗?
-
充分利用语言的优势是一种很好的做法。更重要的是发现事物,并以更快的方式使事情成为可能。
-
我真的希望这有proper SQL escaping 如果它被部署到生产环境中。看到这样的裸变量令人担忧。
-
@DeusDeceit:啊,我完全明白了。我认为您对此不走运,但您可以尝试使用存储过程;)
-
所有变量都被 tadman 先生转义并正确使用。如果您有更多建议,请执行。
标签: mysql sql-update on-duplicate-key