sql >> Database teknologi >  >> RDS >> Mysql

MySQL - Find punkter inden for radius fra databasen

Jeg arbejder i øjeblikket på et projekt, hvor jeg beregner afstande mellem flere lokationer. Jeg bruger følgende forespørgsel til at vælge objekt_id'er, som er inden for en given radius.

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"

Jeg kan ikke forklare selve ACOS-formlen, fordi jeg fik den fra forskning.

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
 

Dette er i kilometer.



  1. Deaktivering af fremmednøglekontrol på kommandolinjen

  2. Forskellen mellem nøgle, primær nøgle, unik nøgle og indeks i MySQL

  3. Indstil mulighed 9 i SQL Server-lagret procedure ved hjælp af WinHttp.WinHttpRequest.5.1 for TLS 1.2

  4. PreparedStatement ignorerer parametre i forespørgslen:java.sql.SQLException:Parameterindeks uden for område (1> antal parametre, som er 0)