简短答案:
- SELECt列表中对别名的引用或
- 别名表达
到目前为止,我发现的唯一文档是:https :
//bugs.mysql.com/bug.php?id=79549
在该链接中有以下内容:
[2015年12月9日15:35] Roy Lyseng …这是原始决定的较长背景:
与在WHERe子句(和GROUP BY)中子查询中对别名的引用相反,
没有理由(除标准合规性之外)我们不应该在SELECT列表中允许对别名的引用 ,因为它们应该 在SELECT列表
中可用。查询执行的同一阶段。但是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”(项目列表中的前向参考)
因此,很容易说 在SELECT列表中对别名的引用的
支持是非常特殊的。尽管如此,我们将尝试重新实现旧的解决方案,但没有尝试清除此功能支持中的明显漏洞。但是,不会在WHERe子句中的子查询中引用别名。
除了在标准文档中描述此功能的错误报告之外,我还一直在寻找文档。但到目前为止没有运气。



