Mysql
 sql >> Database >  >> RDS >> Mysql

php mysql confronta long e lat, restituisce quelli inferiori a 10 miglia

Probabilmente non è necessario farlo nel codice, probabilmente puoi farlo tutto nel DB. se utilizzi un indice spaziale . Documentazione MySQL per l'indice spaziale

MODIFICA per riflettere la tua modifica:

Penso che tu voglia qualcosa del genere:

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 /calcola_distanza_in_mysql_wi.html :