Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Finden von Städten innerhalb von 'X' Kilometern (oder Meilen)

Dies ist eine MySQL-Abfrage, die genau das tut, was Sie wollen. Denken Sie daran, dass solche Dinge im Allgemeinen Annäherungen sind, da die Erde weder perfekt kugelförmig ist noch Berge, Hügel, Täler usw. berücksichtigt. Wir verwenden diesen Code auf AcademicHomes.com mit PHP und MySQL gibt es Datensätze innerhalb von $radius Meilen von $latitude, $longitude zurück.

$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");