【发布时间】:2014-10-03 15:31:47
【问题描述】:
我试图只返回传递给查询的纬度和经度与存储在数据库中的纬度和经度相距一定英里数的行。
查询如下:
SELECT
c.google_theatre_id
AS cinema_id,
c.name
AS cinema_name,
( 3959 * acos( cos( radians('50.4521013') ) *
cos( radians( latitude ) ) *
cos( radians( longitude ) -
radians('-3.5247389') ) +
sin( radians('50.4521013') ) *
sin( radians( latitude ) ) ) )
AS distance
FROM
google_cinemas c, app_users u
WHERE
distance < u.range
AND
u.id = 126
ORDER BY
distance
该查询旨在获取距离,然后将其与app_users 表中的列 (range) 进行比较。
运行查询时,我收到distance 是未知列的错误。
由于这是一个虚拟列,是否有不同的比较方式?
谢谢:)
【问题讨论】:
-
尝试使用
HAVING。 MySQL 不允许在WHERE中引用别名列