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

Jak znaleźć najbliższą lokalizację na podstawie szerokości i długości geograficznej z bazy danych SQL?

Znajdowanie lokalizacji w pobliżu za pomocą MySQL

Oto instrukcja SQL, która znajdzie najbliższe 20 lokalizacji, które znajdują się w promieniu 25 mil od współrzędnej 37, -122. Oblicza odległość na podstawie szerokości/długości geograficznej tego wiersza i docelowej szerokości/długości geograficznej, a następnie pyta tylko o wiersze, w których wartość odległości jest mniejsza niż 25, porządkuje całe zapytanie według odległości i ogranicza je do 20 wyników. Aby wyszukiwać według kilometrów zamiast mil, zamień 3959 na 6371.

Struktura tabeli :

id,name,address,lat,lng

UWAGA - Tutaj szerokość =37 i długość =-122. Więc po prostu przekazujesz swoje.

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

Szczegóły znajdziesz tutaj .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pomyślnie połącz klienta z serwerem MySQL

  2. Utwórz niestandardową metodę wysyłki w OpenCart:część druga

  3. Tworzenie widoku w różnych bazach danych

  4. Jak zarządzać MySQL — dla administratorów baz danych Oracle

  5. Nie zezwalaj na odwrócony złożony klucz podstawowy w MySQL