0

在我对如何重新计算 GROUP上我试图欺骗的字段的评论之后

但是,涉及用户变量的表达式的求值顺序是未定义的。

通过以下方式使用加号运算符诅咒用户变量:

SELECT @a + LEAST(0, @a:= @a + 1)

LEAST / GREATEST这种方式使用当然不是我的主意。

我试图找到有关加号运算符执行顺序的文档,但奇怪的是,我找不到。Arithmetic Operators手册页没有关于该主题的任何内容,也没有Operator Precedence。那么,加号操作总是从左到右运行还是未定义?

4

1 回答 1

-1

稍微挖掘一下,发现这个MySQL 错误包含这个 YACC 片段(当然可以在真实的源代码树中找到,例如这里):

%left   '-' '+'

我们去吧!它没有记录,但来源很容易胜过文档。

于 2013-08-31T10:11:50.347 回答