हां, आप इस उद्देश्य के लिए एक संग्रहीत कार्य बना सकते हैं। कुछ इस तरह:
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 साल बाद कोई त्रुटि मिलती है और आपको कोड को (कुछ) सौ में संपादित करना होगा स्थान)।