我想用来自同一个表的值的数学运算结果来更新表格单元格。下面你可以看到我的表(这是指定用户ID的结果):更新表与数学运算来自同一个表的值
===================================
DATE | AMOUNT | DIR | AFTER
===================================
02-07-17 | 8 | 1 | 50
01-07-17 | 3 | 0 | 42
28-06-17 | 3 | 0 | 45
14-11-15 | 8 | 1 | 0
24-06-15 | 3 | 0 | 0
22-05-15 | 3 | 0 | 0
===================================
第一列是操作的日期(表显示指定用户ID的值与“ORDER BY日期DESC”命令)。第二列(称为AMOUNT)是指定给(或从中)指定用户的帐户(该列具有UNSIGNED属性,因此它不能取负值)的点值。第3列(称为DIR)是操作方向的二进制值(0 =取自,1 =取)。最后一列(称为AFTER)表示每次操作后的当前点值。这表明6月28日用户有45分。 7月1日他输了3分,当天的价值已经设定为42(45-3 = 42)。 7月2日,他得到8分,经常账户值为50(42 + 8 = 50)。
正如你所看到的,只有AFTER列的前3行有值 - 这是因为我在一年前创建的脚本直到今年6月1日才存储这些值(甚至没有列后)。自6月1日以来,我不得不将这些值存储在数据库中,这是可行的,但之前的记录(在我做出更改之前)在2017年6月1日之前的操作后没有合适的积分值(它们只有零)。所以我需要使用一些php + mysql代码更新一个表格(这将作为“同步点”选项手动执行,每个用户一次),以保持每个用户的所有“点之后”值正确。
我想我需要:
1.获得最新的(按日期)金额和后的指定用户ID值,
2.添加或金额。减去向/从AFTER值(取决于DIR的) ,
3.更新第二排与后新值(有一个值存储,但它可以被改写,因为它应该是相同的),
4.让第二排的金额和之后,
5.添加或将AMOUNT减去/取自AFTER值(取决于DIR),
6.更新具有新值AFTER的第3行,
7.等c ...等等...(直到最后一个记录被更新为止)。
你能帮我一个正确的MySQL查询或查询,使其工作?
您需要修复格式设置 – rtfm
“获取最后(按日期)AMOUNT”。我没有看到任何日期。 –
是的,我真的很抱歉。感谢Gordon的编辑。 – Vogelek23