Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL - Tìm điểm trong bán kính từ cơ sở dữ liệu

Tôi hiện đang làm việc trong một dự án mà tôi đang tính toán khoảng cách giữa nhiều địa điểm. Tôi đang sử dụng truy vấn sau để chọn object_id's nằm trong bán kính nhất định.

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"

Tôi không thể giải thích chính công thức ACOS vì tôi lấy nó từ nghiên cứu.

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

Đây là km.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để bạn đặt một máy nhắn tin mặc định cho máy khách MySQL?

  2. Sự kiện lặp lại vào ngày trong tuần thứ n của mỗi tháng

  3. CHỌN Từ Chế độ xem MySQL với mệnh đề HAVING Trả về Tập kết quả trống

  4. Làm thế nào để tách chuỗi tên trong mysql?

  5. Làm thế nào để xử lý sự cố cơ sở dữ liệu (Glassfish / MySQL)?