DELIMITER $$ DROP PROCEDURE IF EXISTS `GetNearbyZipCodes`$$ CREATE PROCEDURE `GetNearbyZipCodes`( zipbase varchar(6), range numeric(15) ) BEGIN DECLARE lat1 decimal(5,2); DECLARE long1 decimal(5,2); DECLARE rangeFactor decimal(7,6); SET rangeFactor = 0.014457; SELECT latitude,longitude into lat1,long1 FROM tbl_zipcodes WHERE zipcode = zipbase; SELECT B.zipcode FROM tbl_zipcodes AS B WHERE B.latitude BETWEEN lat1-(range*rangeFactor) AND lat1+(range*rangeFactor) AND B.longitude BETWEEN long1-(range*rangeFactor) AND long1+(range*rangeFactor) AND GetDistance(lat1,long1,B.latitude,B.longitude) <= range; END$$ DELIMITER ;