有没有可能做这样的事情?
SELECT
@z:=SUM(item),
2*@z
FROM
TableA;
对于第二列,我总是得到NULL。奇怪的是,在做像这样的事情时
SELECT
@z:=someProcedure(item),
2*@z
FROM
TableA;
一切都按预期运行。为什么?
发布于 2014-07-03 18:33:36
适用于mysql 5.5
select @code:=sum(2), 2*@code
+---------------+---------+
| @code:=sum(2) | 2*@code |
+---------------+---------+
| 2 | 4 |
+---------------+---------+
发布于 2015-04-17 17:21:48
mysql> select @z := sum(5), if(@z := sum(5), 2*@z, 0) ;
+--------------+------------------------------+
| @z := sum(5) | if(@z := sum(5), 2*@z, null) |
+--------------+------------------------------+
| 5 | 10 |
+--------------+------------------------------+
我相信将2*@z
包装在if
语句中将确保在额外的计算之前执行sum
。
发布于 2021-11-05 14:33:24
我们不能安全地在select statement.Best中定义和使用变量,就像在SELECT
查询中不选择变量一样。可选查询为
select temp.z,temp.z*2
from (SELECT sum(item) As `z`
FROM TableA
)temp;
https://stackoverflow.com/questions/16715504
复制相似问题