Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

php mysql compare long and lat, retorne aqueles com menos de 10 milhas


Você provavelmente não precisa fazer isso no código, provavelmente pode fazer tudo isso no banco de dados. se você usar um índice espacial . Documentação MySQL para índice espacial

EDITAR para refletir sua edição:

Acho que você quer algo assim:
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 /calculate_distance_in_mysql_wi.html :