升级MySQL后查询不工作

升级MySQL后查询不工作,mysql,Mysql,下面的查询在旧版本的MySQL上运行,但不记得是哪个版本 SELECT @r AS _id, ( SELECT @r := parent FROM t_hierarchy WHERE id = _id ) AS parent, @l := @l + 1 AS lvl FROM ( SELECT @r := 1218,

下面的查询在旧版本的MySQL上运行,但不记得是哪个版本

SELECT  @r AS _id,
         (
         SELECT  @r := parent
         FROM    t_hierarchy
         WHERE   id = _id
         ) AS parent,
         @l := @l + 1 AS lvl
 FROM    (
         SELECT  @r := 1218,
                 @l := 0,
                 @cl := 0
         ) vars,
         t_hierarchy h
WHERE    @r <> 0
自从我升级到5.7之后,我得到了以下错误:

“where子句”中的未知列“\u id”


帮助任何人吗?

似乎是mysql 5.7不允许的别名

可以在查询选择列表中使用别名为列指定名称 不同的名字。您可以在GROUP BY、ORDER BY或HAVING中使用别名 参考本栏的条款:

标准SQL不允许在WHERE子句中引用列别名。 施加此限制是因为当WHERE子句 评估后,可能尚未确定列值


请参阅相关文档

查看mysql 5.7中不允许使用where条件的别名

可以在查询选择列表中使用别名为列指定名称 不同的名字。您可以在GROUP BY、ORDER BY或HAVING中使用别名 参考本栏的条款:

标准SQL不允许在WHERE子句中引用列别名。 施加此限制是因为当WHERE子句 评估后,可能尚未确定列值


请参阅相关文档

可能重新开始,使用样本数据集和所需结果请粘贴表结构t_层次结构可能重新开始,使用样本数据集和所需结果请粘贴表结构t_层次结构