php - 有条件更新mysql中行的值?

标签 php mysql sql database foreach

我想使用 php 和 mysql 实现类似的东西

如果客户有一个有奖励的帐户并且想要花费奖励,我如何更新表格,以便它将从表格​​中减去花费的奖励。

它肯定会根据 customer_id 获得奖励总和,然后减去已花费的奖励。如果第一行(奖励)小于花费值,它将减去所有值,然后转到下一行,获取与之前结果的差值,直到花费值等于0。

示例:

花费 = 60 id_客户 = 2

我有一张这样的 table

id | id_customer | reward
1  |  2          |  50
2  |  2          |  20
3  |  3          |  100
4  |  4          |  5

结果应该是这样的:

第一行:50(第一行的值)- 60 = 0(剩余 10) 第二行:20(第二行的值) - 10(第一行的剩余点数)= 0

id | id_customer | reward
1  |  2          |  0
2  |  2          |  10
3  |  3          |  100
4  |  4          |  5

希望这是有道理的。谢谢

最佳答案

这是我的解决方案的逻辑(当然,也许比这个更好): 获取该客户的行集 (id_customer = 2) 并循环返回的行。 在每次迭代中,将字段奖励的值与您想要减去的金额 (60) 进行比较。 如果实际值 >= 60,则更新该行并退出。如果不是,则将其更新为 0,更新剩余值(60 - 行值)并转到迭代中的下一项执行相同操作。

关于php - 有条件更新mysql中行的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25747375/

相关文章:

PHP MySQL 使用字符串和位置距离进行搜索

php 从 2 个 mysql 查询返回 1 个数据集

mysql - 使用 MYSQL 关联表和 JOIN

带条件的 SQL 插入查询

php - HTML "name"属性中可以使用非西方字符吗?

php - 计数不正确

php - 无法获取选择项目的值?

c# - 这种 SingleOrDefault() 优化是值得的还是过度/有害?

java - Blackberry 的数据库选项

php - PHP namespace 是否与前导斜杠一起使用