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

Làm cách nào để tôi có thể truy vấn trong bảng mysql (nơi lưu trữ vĩ độ và kinh độ) là vị trí gần nhất với vị trí được đưa vào (vĩ độ và kinh độ)?

Tôi đề nghị giới hạn vị trí của bạn bằng một số điều kiện có thể được lập chỉ mục. Bạn có thể làm điều đó dễ dàng vì bạn có thể không muốn liệt kê ai đó từ Hoa Kỳ đến ai đó ở Paris là địa điểm gần nhất.

Chỉ với một chút sửa đổi đối với truy vấn RustamIS, bạn có thể loại bỏ hầu hết các vị trí không liên quan.

select * from gps_location_table t 
where
    t.x between 20.134554 and 20.334554 and t.y between 56.11455255 and 56.31455255
order by 
    sqrt((t.x - 20.234554)*(t.x - 20.234554) + (t.y - 56.21455255)*(t.y - 56.21455255)
desc

Vì vậy, bạn đã xác định một hình chữ nhật mà bạn muốn tìm kiếm những người gần nhất.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách cấp tất cả các đặc quyền trên cơ sở dữ liệu trong MySQL

  2. mysqli_fetch_array Cung cấp cho tôi các hàng trùng lặp

  3. CURRENT_DATE Ví dụ - MySQL

  4. PHP:Sử dụng một biến để giữ tên bảng và sử dụng biến đó trong các truy vấn

  5. Tìm hiểu MySQL - Tuần lễ công nghệ mới