创建MySQL函数语句

时间:2015-04-21 14:17:08

标签: mysql function

我写了一个函数,但是如果有人能帮助我,它会给我错误的第二行(创建语句),我真的很感激:

CREATE FUNCTION GetPrefix (phone_num VARCHAR(30)) RETURNS varchar(30)

deterministic
BEGIN

DECLARE x  INT;
DECLARE prefix varchar(30);
SET x = 0;

for prefix in SELECT code
    FROM tab_len
while (length(phone_num)) > 0
    do
    if prefix<>left(phone_num, length(phone_num)-x)
        then  set x=x+1  ;
    else return 1 ;
END while ;

END $$;

我收到此错误:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'for SELECT code中的前缀                     FROM tab_len while(length(第9行的phone_n'

1 个答案:

答案 0 :(得分:2)

DELIMITER $$
DROP FUNCTION IF EXISTS GetPrefix $$
CREATE FUNCTION GetPrefix 
(
phone_num VARCHAR(30)
) 
RETURNS varchar(30)

BEGIN

DECLARE var_x  INT DEFAULT 0;
DECLARE var_prefix VARCHAR(100);
SET phone_num = IFNULL(phone_num,'');

-- your logic will go here.
return phone_num;


END$$ 
DELIMITER ;

SELECT GetPrefix('test');

这是在mysql中编写函数的正确语法。 检查差异。看看Here