来自MySQL Manual以下查询的输出不保证始终相同。
SET @a := 0;
SELECT
@a AS first,
@a := @a + 1 AS second,
@a := @a + 1 AS third,
@a := @a + 1 AS fourth,
@a := @a + 1 AS fifth,
@a := @a + 1 AS sixth;
<小时/>
输出:
first second third fourth fifth sixth
0 1 2 3 4 5
引用手册:
However,the order of evaluation for expressions involving user variables is undefined;
我想知道背后的故事。
所以我的问题是:为什么涉及用户变量的表达式的求值顺序未定义?
最佳答案
select
中表达式的求值顺序未定义。大多数情况下,您只有在有变量时才会注意到这一点,因为错误会导致错误的信息。
关于mysql - 为什么涉及用户变量的表达式的求值顺序未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38923660/