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

एक कस्टम MySQL समारोह Haversine दूरी की गणना करने के लिए?

हां, आप इस उद्देश्य के लिए एक संग्रहीत कार्य बना सकते हैं। कुछ इस तरह:

DELIMITER //
  DROP FUNCTION IF EXISTS Haversine //
  CREATE FUNCTION Haversine
    ( myLat FLOAT
    , myLong FLOAT
    , db_lat FLOAT
    , db_long FLOAT
    , unit VARCHAR(20)
    )
    RETURNS FLOAT
      DETERMINISTIC
    BEGIN
      DECLARE haver FLOAT ;

      IF unit = 'MILES'                    --- calculations
        SET haver = ...                --- calculations

      RETURN haver ;
    END  //
DELIMITER ;

मुझे नहीं लगता कि यह कोई गति लाभ प्रदान करता है लेकिन यह आपके द्वारा उल्लिखित अन्य सभी कारणों के लिए अच्छा है:पठनीयता, पुन:प्रयोज्यता, रखरखाव में आसानी (कल्पना करें कि आपको 2 साल बाद कोई त्रुटि मिलती है और आपको कोड को (कुछ) सौ में संपादित करना होगा स्थान)।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस में दिनांक और समय डालने से रोकें

  2. MySQL:कॉलम मान के आधार पर प्राप्त परिणामों की सीमित संख्या | प्रश्नों का संयोजन

  3. एकल प्राथमिक कुंजी को संदर्भित करने वाली विदेशी कुंजी के साथ MySQL डेटाबेस तालिका में एकाधिक छवियों को कैसे सम्मिलित करें

  4. Postgresl चयन गिनती (*) समय लेने वाली

  5. MySQL में .frm और .opt फ़ाइलें आयात करें