在MYSQL中获取距离为10km的记录

时间:2017-04-29 08:06:59

标签: php mysql latitude-longitude

我在MYSQL中有表和lat& lon值。

我想在目前的lat& amp; LON。

我正在尝试跟随查询,但它给了我空输出。

SELECT
`id`,
`name`,
ACOS( SIN( RADIANS( `latitude` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `latitude` ) )
* COS( RADIANS( $fLat )) * COS( RADIANS( `longitude` ) - RADIANS( $fLon )) ) * 6380 AS `distance`
FROM `users`
WHERE
ACOS( SIN( RADIANS( `latitude` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `latitude` ) )
* COS( RADIANS( $fLat )) * COS( RADIANS( `longitude` ) - RADIANS( $fLon )) ) * 6380 < 10
ORDER BY `distance`

纬度和经度是列名称&amp; $ fLat&amp; $ fLon是当前的lat和lon值。

1 个答案:

答案 0 :(得分:2)

使用此查询,您的问题将得到解决:

SELECT `id`, `name`, `phone`, `latitude`, `longitude`, SQRT( POW(69.1 * (`latitude` - 24.900363), 2) + POW(69.1 * (67.099760 - `longitude`) * COS(`latitude` / 57.3), 2))
AS `distance`
FROM `users` HAVING `distance` < 25
ORDER BY `distance`