我正在尝试执行距离计算以返回特定距离内的地点列表。这是基于使用邮政编码数据库并确定从原点到每个位置的距离。我想要做的是将结果限制在离原点一定距离内,但是我的MySQL查询有问题。这里的基本查询:如何限制MySQL距离查询
SELECT *,
ROUND(DEGREES(ACOS(SIN(RADIANS(42.320271)) * SIN(RADIANS(zip_latitude)) + COS(RADIANS(42.320271)) * COS(RADIANS(zip_latitude)) * COS(RADIANS(-88.462832 - zip_longitude))))) * 69.09 AS distance
FROM locations
LEFT JOIN zip_codes USING (zip_code)
ORDER BY distance ASC
这个伟大的工程,并给了我所有的每个位置,包括从原点邮政编码的距离的信息...我想要什么。但是,我想限制结果落在一定的距离内(即距离< = 50)。
我的问题是我无法弄清楚在哪里包括(在哪里距离< = 50)到上面的查询,使其一切工作。我试过的所有东西都会给我一个错误信息。任何帮助都会很棒。
这是完美的,你摇滚。我不会想这样试。谢谢! – user469626 2010-10-16 21:11:10
您的第一个解决方案非常适合我,谢谢! - 尽管执行两次接近计算似乎有点浪费? – Haroldo 2011-07-20 10:38:43
@Haroldo:SQL是基于SET而不是程序的。 – 2011-07-20 14:21:21