2012-03-14 69 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