无法访问Select语句(MySQL)中的别名列
我对MySQL中的别名列有问题! 我的问题是:无法访问Select语句(MySQL)中的别名列,mysql,sql,select,alias,Mysql,Sql,Select,Alias,我对MySQL中的别名列有问题! 我的问题是: SELECT Price AS Pr, (Pr*10/100) FROM MyTable; MySQL工作台错误:字段列表中的未知列“Pr” 我在中测试了我的查询,没有错误 我在W3Schools中测试了我的查询,没有错误 这并不能证明您的查询是有效的 您只能在分组依据、排序依据或具有子句中使用别名。不允许使用您的使用变量,因为MySQL在选择第二列时别名的值未知。我怀疑W3C使用MS Access运行用户查询,而MS Access确实允许在同一
SELECT Price AS Pr, (Pr*10/100) FROM MyTable;
MySQL工作台错误:字段列表中的未知列“Pr”
我在中测试了我的查询,没有错误
我在W3Schools中测试了我的查询,没有错误
这并不能证明您的查询是有效的
您只能在
分组依据
、排序依据
或具有
子句中使用别名。不允许使用您的使用变量,因为MySQL在选择第二列时别名的值未知。我怀疑W3C使用MS Access运行用户查询,而MS Access确实允许在同一SELECT子句中定义的SELECT子句中引用列别名
标准不允许这种情况,MySQL在这种特殊情况下遵循标准
至于你问题的解决办法,我有两种选择
可能在任何SQL产品中运行的更通用的解决方案是使用派生表:
SELECT
Pr,
(Pr * 10 / 100) AS SomethingElse
FROM
(
SELECT
SomeComplexExpression AS Pr
FROM MyTable
) AS sub
;
另一个选项是使用特定于MySQL的变量:
SELECT
@Pr := SomeComplexExpression AS Pr,
(@Pr * 10 / 100) AS SomethingElse
FROM MyTable
;
最后,如果您需要测试/演示MySQL中是否可以/不能工作,我建议使用。您需要从MyTable访问原始名称为
选择Price AS Pr(Price*10/100)的列
我知道,但实际上我的第一列是类似于SUM(Price1*Price2*Coef1*Coef2)
的,我想让它更简单!请不要将w3schools作为资源引用。见: