以下查询适用于旧版本的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'
帮助任何人?
答案 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