MySQL说:1064-您的SQL语法有错误;在使用简单if-else创建函数时

MySQL说:1064-您的SQL语法有错误;在使用简单if-else创建函数时,mysql,function,Mysql,Function,我用if-else语句编写了一个简单的函数 这是一个错误 MySQL说:1064-您的SQL语法有错误;在第25行附近,查看与MySQL服务器版本相对应的手册,以了解要使用的正确语法 我想知道,但有人能帮我吗 CREATE DEFINER=`root`@`localhost` FUNCTION `age_group`(`user_id` INT, `match_id` INT) RETURNS varchar(255) CHARSET latin1 READS SQL DATA BEGIN de

我用if-else语句编写了一个简单的函数 这是一个错误

MySQL说:1064-您的SQL语法有错误;在第25行附近,查看与MySQL服务器版本相对应的手册,以了解要使用的正确语法

我想知道,但有人能帮我吗

CREATE DEFINER=`root`@`localhost` FUNCTION `age_group`(`user_id` INT, `match_id` INT) RETURNS varchar(255) CHARSET latin1
READS SQL DATA
BEGIN
declare userdob,matchdob date;
declare userage,matchage int;

select users.dob into userdob from users where users.id = user_id;
select users.dob into matchdob from users where users.id = match_id;

SELECT TIMESTAMPDIFF(YEAR, userdob, CURDATE()) into userage ;

SELECT TIMESTAMPDIFF(YEAR, matchdob, CURDATE()) into matchage ;

IF(userage >= 16 and matchage >= 16) THEN
 RETURN 'opens';
else if(userage >= 8 and matchage >= 8 and userage < 12 and matchage < 12 ) then  
RETURN '8-12';
else if(userage >= 12 and matchage >= 12 and userage < 14 and matchage < 14 ) then  
RETURN '12-14';
else if(userage >= 14 and matchage >= 14 and userage < 16 and matchage < 16 ) then  
RETURN '14 - 16';       
else
return NULL;
end if;   
END

发布完整的功能代码。可能是分隔符的问题。用户id和匹配id字段来自何处?它们是否传递给过程?这两个是作为SET@p0='1'传递的函数参数;设置@p1='2';选择年龄组@p0、@p1为年龄组;