sql >> Database teknologi >  >> RDS >> Mysql

Find byer inden for 'X' kilometer (eller miles)

Dette er en MySQL-forespørgsel, der vil gøre præcis, hvad du vil. Husk at ting som dette generelt er tilnærmelser, da jorden ikke er perfekt sfærisk, og det tager heller ikke højde for bjerge, bakker, dale osv.. Vi bruger denne kode på AcademicHomes.com med PHP og MySQL returnerer det poster inden for $radius miles fra $latitude, $longitude.

$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. 7645 Nul eller tomt fuldtekstprædikat

  2. SubSonic 3 og MySQL, fjernelse af understregning fra kolonnenavn i CleanUp()-metoden forårsager undtagelser ved brug af egenskab i linq-query

  3. Hvordan kører man multiple insert-forespørgsler i SQL ved hjælp af PHP på én gang?

  4. MySQL - Mac - Fejl 2002 - Kan ikke oprette forbindelse til lokal... gennem socket