2012-02-03 58 views
0

我想從mqysql獲得最近的座標,但在語法中出錯!mysql select座標錯誤

$ lat = latitude; $ long = longitude;

"SELECT * FROM `b_location` WHERE round(lat,3) LIKE $lat 
AND round(long,2) LIKE $long order by acos(cos(radians($lat))*cos(radians(lat))*cos(radians(long)- 
radians($long))+sin(radians($lat))*sin(radians(lat)) LIMIT 0,1" 

錯誤:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0,1' at line 1 

所有評論歡迎

回答

1

缺少公式的最後一部分

SELECT * 
    FROM `b_location` 
WHERE round(lat,3) LIKE $lat 
    AND round(long,2) LIKE $long 
ORDER BY acos(cos(radians($lat)) * 
       cos(radians(lat)) * 
       cos(radians(long) - radians($long)) + 
       sin(radians($lat))*sin(radians(lat)) 
      ) LIMIT 0,1" 
+0

有時它的小事情很重要:) – arjun 2012-02-03 09:50:37

0

你缺少一個右括號

後閉架
0

* 使用此爲最近距離< 25 *

SELECT ID,(3959個* ACOS(COS(弧度(37))* COS(弧度(LAT))* COS(弧度(LNG) - 弧度(-122) )+ sin(弧度(37))* sin(弧度(lat))))距標記的距離距離< 25 ORDER BY distance LIMIT 0,20;