我有一个 MySQL 查询列出餐馆、酒店等的结果。每一行都有纬度和经度数据。
我需要按相对于用户搜索位置的距离对结果进行排序(一旦加载页面,我就有了纬度和经度)。
我还有一个 php 函数,它从两个 lat/lng 对返回以公里为单位的距离:
distance($lat1,$lng1,$lat2,$lng2);
但是如何按这个距离对查询结果进行排序呢?
假设查询是,此刻,只是
mysql_query("select * from merchants");
坚持order by distance(latitude,longitude,'$center_lat','$center_long')
在那里给出一个错误说FUNCTION dbname.distance does not exist
。我考虑过在页面加载后立即创建一个带有距离的临时 MySQL 表,然后按此排序,但这似乎有点矫枉过正。是吗?