Mysql
 sql >> Datenbank >  >> RDS >> Mysql

php mysql vergleicht lang und lat, gibt diejenigen unter 10 Meilen zurück

Sie müssen dies wahrscheinlich nicht im Code tun, Sie können dies wahrscheinlich alles in der DB tun. wenn Sie einen räumlichen Index verwenden . MySQL-Dokumentation für räumlichen Index

BEARBEITEN, um Ihre Änderung widerzuspiegeln:

Ich glaube, Sie wollen so etwas:

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 :