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

标签 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

最佳答案

根据MySQL manual :

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

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

关于mysql - SELECT 语句中表达式的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38919532/

相关文章:

sql - SQL Server 中的 pivot varchar 列?

c - 使用 select(...) 作为事件驱动循环?

mysql --version 在brew install mysql之后仍然显示/usr/local/mysql/bin/mysql

mysql - 如果 SQL 中存在一个值,则排除除该值之外的所有值

php - 使用 codeigniter 更新数据库中的记录

sql - T-Sql算法问题

php - 当我将JSon文件写入数据库时​​,字符出现困惑

sql - 具有CASE条件和SUM()的SELECT查询

MySQL SELECT 带有包含字符串的额外列

javascript - Jquery将html值附加到输入框,但不附加跨度内的文本