SELECT
*,(
6371 * acos (
cos ( radians( 34.21702164242081 ) )
* cos( radians( latitude ) )
* cos( radians( longitude ) - radians( 113.76823781349185 ) )
+ sin ( radians( 34.21702164242081 ) )
* sin( radians( latitude ) )
)
) AS distance //距离
FROM xing_store
HAVING distance < 0.5 //筛选距离小于0.5km的商家(可不写),如果没查到数据就是没有小于0.5km的商家
ORDER BY distance //根据距离远近来排序 默认升序 (可不写)
LIMIT 0 , 10; //显示前10条数据(可不写)
thinkphp
$list= Db::table('xing_store')->field('*,6371 * acos(
cos ( radians( '.$latitude.' ) )
* cos( radians ( latitude ) )
* cos( radians( longitude ) - radians( '.$longitude.' ) )
+ sin( radians( '.$latitude.' ))
* sin( radians( latitude ) )
)
as distance')
->having('distance < 10') 这个是 10公里内的数据
->order('distance asc')
->where($where)
->page($page,$size)
->select();
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~