了在How to recalculate a field on GROUP按照我的意见,我试图欺骗MySQL算术加左到右?
但是,评价涉及用户变量表达式的顺序是不确定的。
的user variables诅咒通过以下方式使用加法运算符:
SELECT @a + LEAST(0, @a:= @a + 1)
以这种方式使用LEAST/GREATEST
当然不是我的主意的。
我试图找到关于加号运算符的执行顺序的文档,但很奇怪,我不能。 Arithmetic Operators手册页在主题上没有任何内容,也没有Operator Precedence。那么,加操作总是从左到右运行,还是未定义?
此引用是指SELECT语句中的评估顺序,而不是表达式评估的顺序,请仔细阅读手册:http://dev.mysql.com/doc/refman/5.0/en/user- variables.html,他们写道'SELECT @a,(@a:= @ a + 1),...'中的评估顺序未定,MySql可以自由评估(@a:= @ a + 1)首先,然后@a,即使@a在SELECT语句前面(@a:= @ a + 1) – krokodilko
我已经编辑了这个问题,以使它更清楚我后面的内容。 – chx