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

Làm thế nào để tìm vị trí gần nhất bằng cách sử dụng vĩ độ và kinh độ từ cơ sở dữ liệu SQL?

Tìm vị trí lân cận với MySQL

Đây là câu lệnh SQL sẽ tìm 20 vị trí gần nhất nằm trong bán kính 25 dặm tính đến tọa độ 37, -122. Nó tính toán khoảng cách dựa trên vĩ độ / kinh độ của hàng đó và vĩ độ / kinh độ mục tiêu, sau đó chỉ yêu cầu các hàng có giá trị khoảng cách nhỏ hơn 25, sắp xếp toàn bộ truy vấn theo khoảng cách và giới hạn ở 20 kết quả. Để tìm kiếm theo ki lô mét thay vì dặm, hãy thay thế 3959 bằng 6371.

Cấu trúc bảng:

id,name,address,lat,lng

LƯU Ý - Ở đây vĩ độ =37 &kinh độ =-122. Vì vậy, bạn chỉ cần vượt qua của riêng bạn.

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * 
cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * 
sin( radians( lat ) ) ) ) AS distance FROM your_table_name HAVING
distance < 25 ORDER BY distance LIMIT 0 , 20;

Bạn có thể tìm chi tiết tại đây .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm phân biệt chữ hoa chữ thường trong Django, nhưng bị bỏ qua trong Mysql

  2. Cú pháp TẠO CƠ SỞ DỮ LIỆU SQL - Được DBMS liệt kê

  3. Chọn các kết quả khác biệt hàng đầu được sắp xếp theo tần suất

  4. Bảng mã ký tự nào tốt nhất cho ngôn ngữ tiếng Nhật cho hiển thị DB, php và html?

  5. Cách lấy id hàng trong mysql