从MySQL 手册中,不能保证以下查询的输出始终相同。
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
引用手册:
但是,涉及用户变量的表达式的求值顺序是未定义的;
我想知道背后的故事。
所以我的问题是:为什么涉及用户变量的表达式的评估顺序是未定义的?