Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

जिओलोकेशन एसक्यूएल क्वेरी सटीक स्थान नहीं ढूंढ रही है

आपकी पहली क्वेरी में, मेरा मानना ​​है कि आपने घटाव में देशांतरों को उल्टा कर दिया है। कोसाइन का गोलाकार नियम है:

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

यदि lat1 को tblcity.latitude से प्रतिस्थापित किया जाता है, तो long1 को tblcity.longitude से प्रतिस्थापित किया जाना चाहिए। मुझे लगता है कि आपने अपनी क्वेरी में गलती से long2 को प्रतिस्थापित कर दिया है। क्या यह बेहतर काम करता है?

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 

मैंने अभी तक आपकी दूसरी क्वेरी पर ध्यान नहीं दिया है, लेकिन उम्मीद है कि इससे मदद मिलेगी।



  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 ऑर्डर

  2. MySQL में RBAC के लिए डेटाबेस डिज़ाइन करने के लिए मार्गदर्शिका

  3. ORDER BY का उपयोग करते समय धीमी क्वेरी

  4. जांचें कि क्या mysql में json एन्कोड सरणी में कोई मान मौजूद है

  5. मैसकल, डेटा को लंबे/लंबे से चौड़ा करने के लिए दोबारा आकार दें