【发布时间】:2018-07-09 20:37:32
【问题描述】:
所以我有一个数据库,其中包含以下列:name、uid 和 points。
基本上我想将一个条目的分数减少100,但前提是points > 100。但同时我想将另一个条目上的积分增加100,但前提是第一个条目上的points > 100。
IF <user1_points > 100> : Increase user2_points by 100, decrease user1_points by 100
ELSE: do nothing
我试着环顾四周,但我找不到一个好的解决方案(只有一些带有EXISTS,或者不是mySQL/InnoDB,但我需要一个特定的条件)
我的数据库如下所示:
| name | uid | points |
|------+-----+--------|
| Foo | 1 | 100 |
|------+-----+--------|
| Bar | 2 | 200 |
|------+-----+--------|
我的预期结果是:
| name | uid | points |
|------+-----+--------|
| Foo | 1 | 200 |
|------+-----+--------|
| Bar | 2 | 100 |
|------+-----+--------|
但前提是points(uid=1) > 100。否则什么都不做。
我基本上是在寻找表达短语的正确方式(伪代码):
IF uid=2.points >= 100 THEN SET uid=1.points += 100 AND uid=1.points -= 100
【问题讨论】:
-
更新您的问题添加适当的数据样本和预期的结果..
标签: mysql database conditional