我想在SELECT查询中进行一些计算,使用用户变量来实现。这很好用,但是当我开始使用像 SUM
这样的函数从连接的表中收集数据时,就会出现问题。
以下是一个简化的示例:
SET @a = 1;
SELECT @a := SUM(1 + 1) AS sum, @a
结果:
+------+------+ | sum | @a | +------+------+ | 2 | 1 | +------+------+
我期望@a在这里是2。
另一个例子:
SELECT @b := SUM(1 + 1) AS sum, @b;
+------+------+ | 求和 | @b | +------+------+ | 2 | NULL | +------+------+
现在是NULL,因为在查询之前没有设置@b。
似乎变量没有被SUM函数的结果覆盖。是否有修复这个问题的方法?
SUM(1+1)
的结果。我想把SUM(1+1)
的结果存储在一个变量中,比如@a
,然后在以后重复使用@a
,而不是一遍又一遍地使用SUM(1+1)
。 - Alec