如何在查询中更改Mysql变量?

时间:2015-07-01 03:40:46

标签: php mysql

我有两列的表,即cumulative_sum和absolute。 但我只有累积价值。我想计算绝对值。

累积价值
12
19
32
41

预期绝对值
12
7
13
9

我尝试过这样的查询。我只需要在每次查询更新时更新@absvalue。

set @absvalue := 0;
update pdb_tint_result set abs = (cum - @absvalue)
where user_id='P6'
order by date;
你能指导我吗?

我看到计算累计金额here 我试着让它适用于计算Abs值。

2 个答案:

答案 0 :(得分:2)

试试这个 -

SET @prev_cum:=0;
UPDATE test_point_sum 
   SET absolute_value = (cumulative_sum - @prev_cum),
       cumulative_sum = @prev_cum:=cumulative_sum 
   ORDER BY 
      ID ASC;

选择您的表名和列名。经过测试和验证。看看这是否有帮助

答案 1 :(得分:1)

如果您想通过更改变量自动执行某些操作,我建议您使用触发器。在你的情况下使用触发器

"CREATE TRIGGER update_abs 
 BEFORE UPDATE ON pdb_tint_result
 FOR EACH ROW SET abs = cum - New.absvalue;"

我希望它有所帮助。