我已经编写了一个函数,但是如果有人可以帮助我,它会给我第二行错误(创建语句),我真的很感激:
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服务器版本以使用正确的语法
在SELECT代码中的'for前缀附近
FROM tab_len while(length(phone_n'在第9行
最佳答案
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
关于mysql - 创建MySQL函数语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29774840/