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

Truy vấn SQL vị trí địa lý không tìm thấy vị trí chính xác

Trong truy vấn đầu tiên của bạn, tôi tin rằng bạn đã đảo ngược các kinh độ trong phép trừ. Định luật Hình cầu của Cosin là:

d = acos(sin(lat1)*sin(lat2) + cos(lat1)*cos(lat2)*cos(long2−long1))*R

Nếu lat1 được thay thế bằng tblcity.latitude, thì long1 phải được thay thế bằng tblcity.longitude. Tôi nghĩ rằng bạn đã vô tình thay thế long2 trong truy vấn của mình. Cái này có hoạt động tốt hơn không?

SELECT tblcity.city, tblcity.latitude, tblcity.longitude, 
truncate((degrees(acos( sin(radians(tblcity.latitude)) 
* sin(radians(45.266708)) 
+ cos(radians(tblcity.latitude)) 
* cos(radians(45.266708)) 
* cos(radians(-73.616257 - tblcity.longitude) ) ) ) 
* 69.09*1.6),1) as distance 
FROM tblcity HAVING distance < 10 ORDER BY distance desc 

Tôi chưa xem xét truy vấn thứ hai của bạn, nhưng hy vọng điều đó sẽ hữu í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. Biểu thức trường hợp so với Tuyên bố trường hợp

  2. Quy ước đặt tên thích hợp cho MySQL FKs là gì?

  3. MySQL One-to-Many sang định dạng JSON

  4. ColdFusion - Chèn các ký tự tiếng Ả Rập / tiếng Ba Tư vào mysql

  5. cách khôi phục cơ sở dữ liệu trong phpmyadmin sau khi gỡ cài đặt xampp