sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo encontrar la ubicación más cercana usando la latitud y la longitud de la base de datos SQL?

Buscar ubicaciones cercanas con MySQL

Aquí está la instrucción SQL que encontrará las 20 ubicaciones más cercanas que se encuentran dentro de un radio de 25 millas a la coordenada 37, -122. Calcula la distancia en función de la latitud/longitud de esa fila y la latitud/longitud de destino, y luego solicita solo las filas donde el valor de distancia es inferior a 25, ordena toda la consulta por distancia y la limita a 20 resultados. Para buscar por kilómetros en lugar de millas, reemplace 3959 con 6371.

Estructura de la tabla:

id,name,address,lat,lng

NOTA - Aquí latitud =37 y longitud =-122. Así que solo pasa el tuyo.

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * 
cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * 
sin( radians( lat ) ) ) ) AS distance FROM your_table_name HAVING
distance < 25 ORDER BY distance LIMIT 0 , 20;

Puede encontrar detalles aquí .