WHERE语句中的MySQL AS

ATL*_*ris 17 mysql

我有一个MySQL数据库.我用a SELECT AS来测量2点之间的"距离".我想要做的就是用我在创建相同的"距离"可变SELECTWHERE条件.

SELECT first_name.last_name AS name WHERE name="John Doe"
Run Code Online (Sandbox Code Playgroud)

完成此任务的最佳方法是什么?

小智 17

您可能需要考虑将条件放在HAVING子句中而不是WHERE子句中.

有关HAVING子句的详细信息,请参阅http://dev.mysql.com/doc/refman/5.5/en/select.html.


nat*_*e c 8

列别名只能在ORDER BY子句中引用(因为它们在WHERE部件中尚不存在.您可以这样做(虽然我不一定推荐它,因为它可能更慢.)

select name from
(select concat(firstname, ' ', lastname) as name from yourtable)
where name = 'John Doe'
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做:

select (firstname, ' ', lastname) as name from yourtable
where (firstname, ' ', lastname) = 'John Doe';
Run Code Online (Sandbox Code Playgroud)

您在WHERE子句中可以访问的唯一列是子句中的列FROM.