sql >> Database >  >> RDS >> Mysql

Hoe u efficiënt de dichtstbijzijnde locaties in de buurt van een bepaalde locatie kunt vinden?

Ik denk dat wat u probeert te bereiken, beter kan worden gedaan met behulp van de Haversine-formule in uw SQL. Google heeft een tutorial over hoe je de dichtstbijzijnde locaties in een MySQL-database kunt krijgen maar het algemene idee is deze 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;

Vervolgens wordt al het werk dat u hoeft te doen aan de database gedaan, zodat u niet alle bedrijven in uw PHP-script hoeft te trekken voordat u de afstand zelfs maar hebt gecontroleerd.



  1. Ondersteunt SQLDeveloper het uitvoeren van scripts?

  2. Onze meest populaire databaseblogposts in 2017

  3. Hoe het MySQL my.cnf-bestand te bewerken

  4. Hoe genereer je een unieke id in MySQL?