如何从 mysql 获取以前的记录


How to get previous record from mysql

 col1   | col2 | col3 |  col4 |
------------------------------------
  a    |  1   |   1  |   2    |
  b    |  2   |   2  |   6    |
  a    |  3   |   3  |   12   |

Col4 = Col2+Col3+上一个记录 Col4

我无法使用mysql解决问题,这对我来说太难了

那么谁能帮我?

您可以使用变量来计算 col4 = col2+col3+prev 记录 col4

select col1, col2, col3,
       @prev := col2+col3+@prev as col4
from   t,
       (select @prev := 0) init

SQL 小提琴

请注意,要扩展它,您最好定义一个排序顺序,因为上述查询可能遵循比您预期的不同的顺序,具体取决于引擎选择使用(或不使用)的索引。

例如,如果 col2 定义排序顺序,请添加ORDER BY col2