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

Zapytania w obrębie długości i szerokości geograficznej w MySQL

Powinieneś poszukać formuły Haversine, ale dobrym początkiem może być:

Cytując z pierwszego adresu URL:

Oto instrukcja SQL, która pozwala znaleźć najbliższe 20 lokalizacji znajdujących 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.

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdowanie różnicy między ostatnim a drugim najpóźniejszym terminem

  2. za pomocą mysql_close()

  3. PHP jak zapisać ciąg HTML do bazy danych

  4. Jak przechowywać datę i godzinę Java Date na Mysql za pomocą JPA?

  5. Przerywanie bezczynnych połączeń mysql