升级MySQL后查询无效

时间:2016-02-12 07:36:21

标签: 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,
                 @l := 0,
                 @cl := 0
         ) vars,
         t_hierarchy h
WHERE    @r <> 0

自从我升级到5.7后,我收到错误:

  

'where子句'中的未知列'_id'

帮助任何人?

1 个答案:

答案 0 :(得分:0)

似乎是mysql 5.7不允许条件的别名

  

可以在查询选择列表中使用别名来为列a提供   不同的名字。您可以在GROUP BY,ORDER BY或HAVING中使用别名   条款引用专栏:

     

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

请参阅相关文档http://dev.mysql.com/doc/refman/5.7/en/problems-with-alias.html