我正在尝试将 mysql 版本从 5.6 升级到 8.0
一些旧版 SQL 语句包含用户定义的变量。
我的问题是以下查询的结果在两个版本之间是不同的。(这是问题的总结)
SELECT @t
FROM ( SELECT @t:=0 ) T
WHERE @t IS NOT NULL
在版本 5.6 的情况下,
结果表上显示 0。
但是,在 8.0 版中,结果表中没有行。
看起来 @t 在 WHERE 子句中仍然是 NULL(@t 未定义)。
我想知道为什么 @t 没有在 FROM 子句的子查询中定义和分配。
有谁知道原因?