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

php mysql compara long y lat, devuelve los de menos de 10 millas

Probablemente no necesite hacer esto en el código, probablemente pueda hacer todo esto en la base de datos. si usa un índice espacial . Documentación MySQL para índice espacial

EDITAR para reflejar su edición:

Creo que quieres algo como esto:

SELECT *, ((ACOS(SIN($lat * PI() / 180) * SIN(lat * PI() / 180) + COS($lat * PI() / 180) * COS(lat * PI() / 180) * COS(($lon - lon) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance FROM locations HAVING distance<='10' ORDER BY distance ASC

VIA:http://www.zcentric.com/blog/2007/03 /calcular_distancia_en_mysql_wi.html :