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

अक्षांश और देशांतर निर्देशांक के लिए MySQL को क्वेरी करना जो किसी दिए गए मील के दायरे में हैं

कोसाइन सूत्र का गोलाकार नियम
(37 और -122 आपके त्रिज्या केंद्र के अक्षांश और देशांतर हैं)

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) 
    * cos( radians( long ) - radians(-122) ) + sin( radians(37) ) * sin(radians(lat)) ) ) AS distance 
FROM myTable
HAVING distance < 50
ORDER BY distance 

विशेषताएं

  • सबसे तेज़
  • हार्वेसिन फ़ॉर्मूला के समान सटीक

हावरसाइन फॉर्मूला

SELECT id, 3959 * 2 * ASIN(SQRT(POWER(SIN((37 - abs(lat)) * pi()/180 / 2), 2)
       + COS(37 * pi()/180 ) * COS(abs(lat) * pi()/180)
       * POWER(SIN((-122 - long) * pi()/180 / 2), 2) )) as  distance
FROM myTable
HAVING distance < 50
ORDER BY distance

विशेषताएं

  • तेज़
  • फ़्लोटिंग पॉइंट त्रुटियों के लिए अधिक मजबूत

ध्यान दें कि 3959 मील में पृथ्वी का दायरा है . पृथ्वी की त्रिज्या किलोमीटर (किमी) में:6371

आप अधिक जानकारी यहां प्राप्त कर सकते हैं




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं लार्वा 5.5 में माइग्रेशन कैसे कर सकता हूं?

  2. SQL AVG के साथ दो तालिकाओं में शामिल हों

  3. उन पंक्तियों का चयन कैसे करें जिनमें वर्तमान दिन का टाइमस्टैम्प है?

  4. MySQL TAN () फ़ंक्शन - MySQL में किसी मान की स्पर्शरेखा लौटाएं

  5. InnoDB बनाम MyISAM में MySQL परमाणु अद्यतन