我有一个MySQL数据库。我使用SELECT AS
来衡量2点之间的“距离”。我想要做的是使用我在SELECT
中创建的相同“距离”变量作为WHERE
条件。
SELECT first_name.last_name AS name WHERE name="John Doe"
实现这一目标的最佳方法是什么?
答案 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)
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';