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

So finden Sie effizient die nächstgelegenen Standorte in der Nähe eines bestimmten Standorts

Ich denke, was Sie erreichen möchten, könnte mit der Haversine-Formel besser erreicht werden in deinem SQL. Google hat ein Tutorial, wie man die nächstgelegenen Standorte in einer MySQL-Datenbank erhält aber die allgemeine Idee ist diese SQL:

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

Dann wird die gesamte Arbeit, die Sie tun müssen, in der Datenbank erledigt, sodass Sie nicht alle Unternehmen in Ihr PHP-Skript ziehen müssen, bevor Sie überhaupt die Entfernung überprüfen.