我试图做这样的事情:
Select column_name*other_column_name as sqr
From table
Where sqr<25
Order by(sqr)
column_name和column_name是我存储int值的数据库列。
我发现
标准SQL不允许您在WHERE子句中引用列别名。之所以施加此限制,是因为执行WHERE代码时,可能尚未确定列值。例如,以下查询是非法的。
有谁知道如何礼貌地度过难关,请不要这么说:
Select column_name*other_column_name as sqr
From table
Where column_name*other_column_name<25
Order by (column_name*other_column_name);
因为在此示例中,我简化了方程,但是在我的项目中,方程真的很长
谢谢你为我的英语
最佳答案
您可以将查询包装在子查询中,然后可以使用别名:
SELECT *
FROM
(
Select column_name*other_column_name as sqr
from table
) X
where x.sqr < 25
order by x.sqr;
关于mysql - MYSQL数据库选择问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11654956/