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

Cách tìm hiệu quả các vị trí gần nhất gần một vị trí nhất định

Tôi nghĩ những gì bạn đang cố gắng đạt được có thể được thực hiện tốt hơn bằng cách sử dụng công thức Haversine trong SQL của bạn. Google có một hướng dẫn về cách lấy các vị trí gần nhất trong cơ sở dữ liệu MySQL nhưng ý tưởng chung là SQL này:

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

Sau đó, tất cả công việc bạn cần làm được thực hiện trên cơ sở dữ liệu, vì vậy bạn không cần phải kéo tất cả các doanh nghiệp vào tập lệnh PHP của mình trước khi bạn kiểm tra khoảng cách.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Trigger chỉ sau khi cập nhật nếu hàng đã thay đổi

  2. Truy vấn để tìm và xóa dữ liệu trùng lặp khỏi bảng MYSql

  3. 5 công cụ giám sát MySQL hàng đầu

  4. Di chuyển Google Cloud SQL dành cho MySQL sang máy chủ On-Prem

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