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

Execution order of expressions in SELECT statement

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

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

根据 MySQL manual:

However, the order of evaluation for expressions involving user variables is undefined

所以你的问题的答案是否定的,不能保证执行顺序。