我正在使用以下sql代码来查找与设置坐标最接近的'ALL'poi,但我想要查找具体的poi而不是全部其中。当我尝试使用where子句时,我得到一个错误,它不起作用,这是我目前卡住的地方,因为我只使用一个表来处理所有poi的所有坐标。使用WHERE子句在距经度和纬度的距离范围内查找POI
SET @orig_lat=55.4058;
SET @orig_lon=13.7907;
SET @dist=10;
SELECT
*,
3956 * 2 * ASIN(SQRT(POWER(SIN((@orig_lat -abs(latitude)) * pi()/180/2), 2)
+ COS(@orig_lat * pi()/180) * COS(abs(latitude) * pi()/180)
* POWER(SIN((@orig_lon - longitude) * pi()/180/2), 2))) as distance
FROM geo_kulplex.sweden_bobo
HAVING distance < @dist
ORDER BY distance limit 10;
不工作怎么样?你能在你的问题中粘贴错误信息吗? – mazaneicha 2012-02-26 14:05:31
来优化此类查询的速度/性能阅读此文章:http://stackoverflow.com/a/5749614/43959 – Kaii 2012-02-26 22:58:44