Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL - Znajdź punkty w promieniu od bazy danych

Obecnie pracuję nad projektem, w którym obliczam odległości między wieloma lokalizacjami. Używam następującego zapytania do wybrania identyfikatorów obiektów, które znajdują się w określonym promieniu.

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"

Nie potrafię wyjaśnić samej formuły ACOS, ponieważ dostałem ją z badań.

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 jest w kilometrach.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę włączyć powolny dziennik zapytań MySQL bez ponownego uruchamiania MySQL?

  2. Konwersja kolumny mysql z INT na TIMESTAMP

  3. C# MySql UTWÓRZ UŻYTKOWNIKA

  4. W jaki sposób tabele innodb są blokowane podczas przetwarzania wyzwalacza ON INSERT?

  5. python:jak otrzymywać powiadomienia o zmianach w bazie mysql?