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

Znajdowanie miast w promieniu „X” kilometrów (lub mil)

To jest zapytanie MySQL, które zrobi dokładnie to, czego chcesz. Należy pamiętać, że takie rzeczy są ogólnie przybliżeniami, ponieważ ziemia nie jest idealnie kulista ani nie uwzględnia gór, wzgórz, dolin itp. Używamy tego kodu na AcademicHomes.com z PHP i MySQL zwraca rekordy w promieniu $ mil od $szerokości, $długości geograficznej.

$res = mysql_query("SELECT
    * 
FROM
    your_table
WHERE
    (
        (69.1 * (latitude - " . $latitude . ")) * 
        (69.1 * (latitude - " . $latitude . "))
    ) + ( 
        (69.1 * (longitude - " . $longitude . ") * COS(" . $latitude . " / 57.3)) * 
        (69.1 * (longitude - " . $longitude . ") * COS(" . $latitude . " / 57.3))
    ) < " . pow($radius, 2) . " 
ORDER BY 
    (
        (69.1 * (latitude - " . $latitude . ")) * 
        (69.1 * (latitude - " . $latitude . "))
    ) + ( 
        (69.1 * (longitude - " . $longitude . ") * COS(" . $latitude . " / 57.3)) * 
        (69.1 * (longitude - " . $longitude . ") * COS(" . $latitude . " / 57.3))
    ) ASC");


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql - przenieś wiersze z jednej tabeli do drugiej

  2. Zapytanie do tabeli przestawnej MySQL z dynamicznymi kolumnami

  3. Składnia symboli zastępczych MySQLdb w Pythonie

  4. mysqldump błąd:pakiet większy niż max_allowed_packet'

  5. mysql - WSTAW zakres dat do kolumn dat JEŚLI daty nie pokrywają się z istniejącymi