sql >> Databasteknik >  >> RDS >> Mysql

Hitta städer inom "X" kilometer (eller mil)

Detta är en MySQL-fråga som gör precis vad du vill. Tänk på att saker som detta är ungefärliga i allmänhet, eftersom jorden inte är perfekt sfärisk och inte heller tar hänsyn till berg, kullar, dalar, etc.. Vi använder den här koden på AcademicHomes.com med PHP och MySQL returnerar den poster inom $radius miles från $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. Hur använder man GROUP BY för att sammanfoga strängar i SQL Server?

  2. ER_NOT_SUPPORTED_AUTH_MODE:Klienten stöder inte autentiseringsprotokoll som begärts av servern; överväg att uppgradera MySQL-klienten

  3. Begränsning definierad UPPHÖJBAR INitialt OMEDELBART är fortfarande UPPHÖJD?

  4. SQL-frågor