2

我想知道SELECT语句中表达式的执行顺序是否总是从左到右发生。

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
4

2 回答 2

3

根据MySQL manual

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

因此,您的问题的答案是否定的,执行顺序无法保证。

于 2016-08-12T13:53:17.450 回答
0

是的,无论如何都没有执行顺序的配置,所以你总是得到这样的输出。

于 2016-08-12T13:49:13.360 回答