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 merchant
HAVING distance < 0.5
ORDER BY distance
LIMIT 0 , 10;
我的用php所以附上laravel框架版本
$latitude = 34.21702164242081;
$longitude = 113.76823781349185;
return DB::table('merchant')
->select('*', DB::raw(
'6371 * acos(
cos ( radians( '.$latitude.' ) )
* cos( radians ( latitude ) )
* cos( radians( longitude ) - radians( '.$longitude.' ) )
+ sin( radians( '.$latitude.' ))
* sin( radians( latitude ) )
)
as distance')
)
->having('distance','<',0.5)
->orderBy('distance')
->paginate(10);
记录一下
|