10 php mysql sql-order-by proximity latitude-longitude
MySQL(表)
id | url | lat | lng
----------------------------------
1 | x | 44.339565 | -101.337891
----------------------------------
2 | y | 44.150681 | -101.074219
----------------------------------
3 | z | 43.897892 | -100.634766
Run Code Online (Sandbox Code Playgroud)
我现在要做的是根据它们与(43.834527,-99.140625)的接近度来排序.
$a = mysql_query("SELECT * FROM table ORDER BY proximity DESC");
while($b = mysql_fetch_assoc($a))
{
echo $b['url'].'<br />';
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*llo 12
您可能有兴趣查看以下演示文稿:
作者描述了如何使用MySQL中的Haversine公式按邻近顺序排序并将搜索限制在一个定义的范围内.他还介绍了如何使用纬度和经度列上的传统索引来避免对此类查询进行全表扫描.
1 PDF版本