Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak sprawnie znaleźć najbliższe lokalizacje w pobliżu danej lokalizacji?

Myślę, że to, co próbujesz osiągnąć, można zrobić lepiej, używając formuły Haversine w twoim SQL. Google ma samouczek, jak uzyskać najbliższe lokalizacje w bazie danych MySQL ale ogólną ideą jest ten 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;

Wtedy cała praca, którą musisz wykonać, jest wykonywana na bazie danych, więc nie musisz wciągać wszystkich firm do swojego skryptu PHP, zanim nawet sprawdzisz odległość.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak znaleźć podobne wyniki i posortować według podobieństwa?

  2. Jak działa funkcja RPAD() w MySQL

  3. Wyjaśnienie MySQL ISNULL()

  4. Jak znaleźć wszystkie tabele, które mają klucze obce, które odwołują się do konkretnej table.column i mają wartości dla tych kluczy obcych?

  5. Dodać identyfikator automatycznego zwiększania do istniejącej tabeli?