【发布时间】:2018-09-01 05:33:11
【问题描述】:
MySQL 中如何定义临时变量操作?似乎值的任何更改都将在赋值表达式之后立即“可见”。如果我运行查询
SELECT
@x as x,
@x + (@x:=@x+1) + @x as magic,
@x as new_x
FROM
(SELECT @x:=0) x,
Values1to100 numbers
返回
+---+-------+-------+
| x | magic | new_x |
+===+=======+=======+
| 0 | 2 | 1 |
+---+-------+-------+
| 1 | 5 | 2 |
+---+-------+-------+
| 2 | 8 | 3 |
+---+-------+-------+
| ... |
现在我想知道这是不是 MySQL(或一般的 SQL)定义明确的行为(即结果取决于实现)?
【问题讨论】:
标签: mysql sql variables select variable-assignment