简短答案:
到目前为止,我发现的唯一文档是:https ://bugs.mysql.com/bug.PHP?id=79549
[2015年12月9日15:35] Roy Lyseng …这是原始决定的较长背景:
与在WHERE子句(和GROUP BY)中子查询中对别名的引用相反, ,因为它们应该 中可用。查询执行的同一阶段。但是5.6中的支持相当随意:
鉴于此:创建表t1(a int,b int),
SELECT列表中的别名无效:
select a+b as c,c+1 from t1;
错误1054(42S22):“字段列表”中的未知列“ c”
但是在子查询中,对c的引用是有效的:
select a+b as c,(select c+1) from t1;
并且子查询必须在别名定义之后:
select (select c+1),a+b as c from t1;
错误1247(42S22):不支持参考“ c”(项目列表中的前向参考)
因此,很容易说 支持是非常特殊的。尽管如此,我们将尝试重新实现旧的解决方案,但没有尝试清除此功能支持中的明显漏洞。但是,不会在WHERE子句中的子查询中引用别名。