我正在使用以下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