はい、この目的のためにストアド関数を作成できます。このようなもの:
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年後にエラーが見つかり、コードを数百で編集する必要があると想像してください)など、他のすべての理由で良いと思います。場所)。