2012-03-14 74 views
0

我目前有一個MySQL數據庫中有四個表的列表:State,City,Latitude,Longitude。 我的緯度和經度列是浮點類型(10,6)。 我期待實現MySQL查詢哪裏可以搜索相似緯度經度條目,比如我想實現這樣的事情:mysql數字通配符

SELECT * FROM `mytable` WHERE `Latitude` LIKE '41.wxyz' and 'Longitude' LIKE '-87.wxyz' 

其中wxyz可以是任何數字。我想這樣做,這樣我就可以將任何城市靠近任何給定的任意座標。誰能幫我嗎?

解決方案/更新 我無法讓我的應用程序按照下面提供的答案來做我想要的!儘管我很欣賞每個人的意見;我能夠擴展我的SQL查詢知識。爲了讓我的應用程序能夠找到關於經緯度對的附近位置,我使用了Haversine公式。詳細在這個谷歌地圖文章。 https://developers.google.com/maps/articles/phpsqlsearch

SELECT id, (3959 * acos(cos(radians(37)) * cos(radians(lat)) * cos(radians(lng) - radians(-122)) + sin(radians(37)) * sin(radians(lat)))) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20; 

其中lat和lng是mysql表中的列。 37和-122是你希望在你的表格中找到其他附近座標的座標。 :)

回答

2

您可以通過這個做得一樣好:

SELECT * FROM `mytable` WHERE (`Latitude` between 41.0 and 42.0) and ('Longitude' between -87.0 and -88.0) 

試試這個。

2

您可以使用ROUND函數,例如, -

SELECT * FROM `mytable` 
    WHERE ROUND(Latitude, 0) = 41 AND ROUND(Longitude, 0) = -87