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

Bộ mã hóa địa lý của Google Maps để tìm các địa điểm lân cận từ cơ sở dữ liệu MySQL

tìm kiếm theo bán kính:

select *,
    acos(cos(centerLat * (PI()/180)) *
     cos(centerLon * (PI()/180)) *
     cos(lat * (PI()/180)) *
     cos(lon * (PI()/180))
     +
     cos(centerLat * (PI()/180)) *
     sin(centerLon * (PI()/180)) *
     cos(lat * (PI()/180)) *
     sin(lon * (PI()/180))
     +
     sin(centerLat * (PI()/180)) *
     sin(lat * (PI()/180))
    ) * 3959 as Dist
from TABLE_NAME
having Dist < radius
order by Dist

3959 là bán kính Trái đất tính bằng Miles. Thay thế giá trị này bằngradius trong KM hoặc bất kỳ đơn vị nào, để nhận được kết quả trên cùng một đơn vị. centerLat centerLon là trung tâm của tìm kiếm (yourinput), trong khi vĩ độ và kinh độ là các trường trong bảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đổi tên các cột trong câu lệnh SQL SELECT

  2. Giải thích kế hoạch trong hiệu suất mysql bằng Sử dụng tạm thời; Sử dụng tệp tin; Sử dụng điều kiện chỉ mục

  3. Không thể kết nối với máy chủ MySQL cục bộ thông qua socket '/var/run/mysqld/mysqld.sock' trong Ubuntu 12.04.5 LTS

  4. Truy vấn cho Người dùng không thuộc một nhóm cụ thể? (Muốn sử dụng EXCEPT nhưng có vẻ như MySQL không hỗ trợ nó)

  5. Hiệu suất trình điều khiển JDBC XA so với không XA?