SELECT语句中表达式的执行顺序

时间:2016-08-12 13:45:35

标签: mysql sql select order-of-execution

我想知道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

2 个答案:

答案 0 :(得分:3)

根据MySQL manual

  

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

所以问题的答案是否定的,执行顺序无法保证。

答案 1 :(得分:0)

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