mysql - 创建MySQL函数语句

标签 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 $$;

我收到此错误:

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 'for prefix in SELECT code FROM tab_len while (length(phone_n' at line 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/

相关文章:

mysql - 使用 Zend Framework 2 TableGateway 加入子查询

mysql - Spring模型使用多个表

php - Mysql + php 带有特殊字符,如 '(Apostrophe) and "(引号)

c - C 中的阶乘函数

C++ const 函数错误

javascript - 如果输入的字符串匹配,它会显示带有 javascript 的 HTML 元素

c - 通过 C 中的其他过程使用变量

mysql - 如何将本地 MySQL 数据库连接到 IBM Node-Red 平台

mysql - 我怎么知道我的 MySQL alter table 语句在工作?

javascript - 我的范围有什么问题?为什么我不覆盖变量? js