WHERE语句中的MySQL AS

时间:2011-01-06 03:24:39

标签: mysql

我有一个MySQL数据库。我使用SELECT AS来衡量2点之间的“距离”。我想要做的是使用我在SELECT中创建的相同“距离”变量作为WHERE条件。

SELECT first_name.last_name AS name WHERE name="John Doe"

实现这一目标的最佳方法是什么?

3 个答案:

答案 0 :(得分:16)

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

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

答案 1 :(得分:8)

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

select name from
(select concat(firstname, ' ', lastname) as name from yourtable)
where name = 'John Doe'

或者你可以这样做:

select (firstname, ' ', lastname) as name from yourtable
where (firstname, ' ', lastname) = 'John Doe';

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

答案 2 :(得分:0)

你可以做一件事 把条件放在where子句

SELECT *,
    IF(check_out='0000-00-00 00:00:00', NOW(), check_out) AS occ_test
FROM occupied_room1
WHERE
DATE(IF(check_out='0000-00-00 00:00:00', NOW(), check_out)) = ' 2017-07-02';