我试图做这样的事情:

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/

10-12 14:15