sql >> Database >  >> RDS >> Mysql

MySQL - Vind punten binnen een straal van de database

Ik ben momenteel bezig met een project waarbij ik afstanden bereken tussen meerdere locaties. Ik gebruik de volgende query voor het selecteren van object_id's die zich binnen een bepaalde straal bevinden.

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"

Ik kan de ACOS-formule zelf niet verklaren omdat ik die uit onderzoek heb gehaald.

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

Dit is in kilometers.



  1. SQL retourneert 100 willekeurige rijen voor elke leeftijd

  2. mysql ID auto increment start niet vanaf 0

  3. Welke methoden kunnen worden gebruikt om verschillende versies van reeds bestaande databases te beheren?

  4. Controleer op duplicaten voordat u deze invoegt