sql >> Databáze >  >> RDS >> Mysql

Hledání měst v okruhu 'X' kilometrů (nebo mil)

Toto je dotaz MySQL, který udělá přesně to, co chcete. Mějte na paměti, že věci, jako je toto, jsou obecně přibližné, protože Země není dokonale kulovitá, ani to nebere v úvahu hory, kopce, údolí atd.. Tento kód používáme na AcademicHomes.com s PHP a MySQL vrací záznamy v okruhu $radius mil od $zeměpisná šířka, $délka.

$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. Chybí rozšíření mysqli, nefunguje phpmyadmin

  2. získat base64 obrázky z databáze

  3. SQLite Představuje funkci UNIXEPOCH().

  4. Špatné postupy při návrhu databáze