Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL - Temukan poin dalam radius dari database

Saat ini saya sedang mengerjakan proyek di mana saya menghitung jarak antara beberapa lokasi. Saya menggunakan kueri berikut untuk memilih object_id yang berada dalam radius tertentu.

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"

Saya tidak bisa menjelaskan rumus ACOS itu sendiri karena saya mendapatkannya dari penelitian.

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

Ini dalam kilometer.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan Tanggal dari Kolom Datetime di MySQL

  2. Cara memuat data tanggal di MySQL saat menggunakan LOAD DATA

  3. Pohon Hubungan Toko MySQL (Keluarga)

  4. Mengapa saya harus menggunakan kunci asing jika saya dapat menggunakan WHERE?

  5. Nonaktifkan Login Root di phpMyAdmin