MySQL函数中的语法错误

MySQL函数中的语法错误,mysql,sql,phpmyadmin,mysql-error-1064,Mysql,Sql,Phpmyadmin,Mysql Error 1064,我正在尝试为我的邮件服务器设置一个MySQL函数。MySQL版本是5.1.66 我知道这个问题出了什么问题。我还尝试了返回双精度,读取SQL数据,和确定性,但都没有帮助 我正在使用PhpMyAdmin。分隔符设置为$$。但我得到的只是一条神秘的错误信息: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right

我正在尝试为我的邮件服务器设置一个MySQL函数。MySQL版本是5.1.66

我知道这个问题出了什么问题。我还尝试了
返回双精度
读取SQL数据
,和
确定性
,但都没有帮助

我正在使用PhpMyAdmin。分隔符设置为$$。但我得到的只是一条神秘的错误信息:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TEXT CHARSET utf8 READS SQL DATA BEGIN DECLARE mygoto VARCHAR(25' at line 3
我的代码:

CREATE PROCEDURE `get_email_alias`(
myemail VARCHAR(255)
) RETURNS TEXT CHARSET utf8
READS SQL DATA

BEGIN

DECLARE mygoto VARCHAR(255);
DECLARE sdomain VARCHAR(255);
DECLARE ddomain VARCHAR(255);

SELECT SUBSTRING(myemail, INSTR(myemail, '@')+1) INTO sdomain;

SELECT target_domain
FROM alias_domain
WHERE alias_domain = sdomain
AND active = 1
LIMIT 1
INTO ddomain;

IF ddomain IS NOT NULL THEN
SELECT REPLACE(myemail, sdomain, ddomain) INTO myemail;
END IF;
SELECT goto
FROM alias
WHERE address = myemail
AND active = 1
LIMIT 1
INTO mygoto;

IF mygoto IS NOT NULL THEN
RETURN mygoto;
END IF;

RETURN null;
END $$

对于以后遇到此问题的任何人,第一行的“过程”缺少“E”:

关键字
过程中最初出现语法错误
。缺少最后的
E


根据MySQL语法,
CREATE PROCEDURE
RETURN
。但是,
CREATE函数
允许语法中的
RETURN
。参考:。

过程拼写错误。已更正。Post中出现新错误。如果查看,
CREATE PROCEDURE
RETURN
,而
CREATE函数
可以。谢谢。有时我真的看不见树的木头了。;)添加了缺少的“E”和“读取SQL数据”新错误:#1064-您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以获取使用接近“TEXT CHARSET utf8读取SQL数据BEGIN DECLARE mygoto VARCHAR”的正确语法(25'在第3行,Wish可以提供更多帮助,但在视觉上看不到任何东西。请查看BLaZuRE关于过程/返回的评论。也许您想要函数?另外,不知道mySql,但在SQL Server中,您不在ResultSet的过程中进行返回,只需执行一个查询,调用者就会得到结果。祝您好运!