SQL查询坐标距离

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wuxianbing2012/article/details/84961100

SELECT *,SQRT(POWER($latitude - latitude, 2) + POWER($longitude  - longitude, 2)) AS d FROM table WHERE (latitude BETWEEN $min_latitude AND $max_latitude) AND (longitude BETWEEN $min_longitude AND $max_longitude) AND d < $i ORDER BY d ASC LIMIT 10;

SELECT *,SQRT(POWER(39.791056 - latitude, 2) + POWER(116.505985  - longitude, 2)) AS d FROM rv_franchiser_info WHERE (latitude BETWEEN 38 AND 40) AND (longitude BETWEEN 115 AND 117) AND d < 1 ORDER BY d ASC LIMIT 10;

SELECT *,SQRT(POWER(39.791056 - latitude, 2) + POWER(116.505985  - longitude, 2)) AS d FROM rv_franchiser_info WHERE (latitude BETWEEN 30 AND 40) AND (longitude BETWEEN 110 AND 120) AND d < 100 ORDER BY d ASC LIMIT 10;

SELECT *, (   6371 * acos(     cos(radians(32))    * cos( radians( latitude ) )    * cos(radians( longitude ) - radians(121))    +    sin( radians(32) )     * sin( radians( latitude ) )   ) ) AS distance FROM rv_franchiser_info HAVING distance < 100 ORDER BY distance LIMIT 0 , 20;


SELECT *, (   6371 * acos(     cos(radians({$latitude}))    * cos( radians( latitude ) )    * cos(radians( longitude ) - radians({$longitude}))    +    sin( radians({$latitude}) )     * sin( radians( latitude ) )   ) ) AS distance FROM rv_franchiser_info ORDER BY distance LIMIT 0 , 20;

猜你喜欢

转载自blog.csdn.net/wuxianbing2012/article/details/84961100