SQL如何从变量中提取值

时间:2015-08-04 20:23:27

标签: mysql sql

我正在寻找一种从SQL变量中提取值并将此值保存在新变量中的方法。例如,如果我有变量@myVar,它存储值25,并且我想将此值保存到新变量@myVar1,然后将@myVar中存储的值更新为30 。我发现只设置@myVar1:= @myVar不起作用,因为我将@myVar中存储的值更改为30,@myVar1变量也会自动更新为30。

我在SELECT语句中使用这些变量,以便跟踪前一行中的值并将其与当前行中的值进行比较。

相关的代码段是:

SELECT
CASE 
   When (@r is not null) then @myVar1:= @myVar
END, 
@myVar:= @myVar + 1

如您所见,@myVar每行都设置为新值,而@myVar1只应在条件满足时设置为@myVar的当前值,并保留无论值@myVar发生任何变化,都存储该值,直到再次满足条件为止。因此,如果@myVar = 7@r不为@myVar1 = 7,那么当@myVar将设置为8时,@myVar1也将设置为8而不是保持在7,直到再次满足条件。

1 个答案:

答案 0 :(得分:1)

也许你应该这样做:

@x_old := x;
@x := case when @r is not null then @y else @x end;

(如果这是在一个程序中,您可以将;保留在原来的位置;如果这是在查询中,请将其替换为,

这样,如果条件未满足,您将保留@x的值