MySQL说:1064-您的SQL语法有错误;在使用简单if-else创建函数时
我用if-else语句编写了一个简单的函数 这是一个错误 MySQL说:1064-您的SQL语法有错误;在第25行附近,查看与MySQL服务器版本相对应的手册,以了解要使用的正确语法 我想知道,但有人能帮我吗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
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为年龄组;