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

MySQL - Najděte body v okruhu z databáze

Momentálně pracuji na projektu, kde počítám vzdálenosti mezi více místy. Pro výběr object_id, které jsou v daném okruhu, používám následující dotaz.

SELECT id, 
( 6371 * 
    ACOS( 
        COS( RADIANS( db_latitude ) ) * 
        COS( RADIANS( $user_latitude ) ) * 
        COS( RADIANS( $user_longitude ) - 
        RADIANS( db_longitude ) ) + 
        SIN( RADIANS( db_latitude ) ) * 
        SIN( RADIANS( $user_latitude) ) 
    ) 
) 
AS distance FROM the_table HAVING distance <= $the_radius ORDER BY distance ASC"

Nemohu vysvětlit samotný vzorec ACOS, protože jsem ho získal z výzkumu.

db_latitude = database latitude field
db_longitude = database longitude field
$user_latitude = browser latitude coördinate
$user_longitude = browser longitude coördinate
$the_radius = the radius that you want to search in

To je v kilometrech.



  1. Spring's Stored Procedure - výsledky vracející se z procedury vždy prázdné

  2. Jak odstranit řádky z tabulky spojení (ManyToMany) v Doctrine?

  3. Jak převést sloupec časového razítka SQL Serveru do formátu datetime

  4. Jak získat velikost databáze MySQL?