好吧,我有一个关于 MySql 中递归的问题,关于创建递归阶乘函数。它给我错误 1424:
Well, I have a problem about recursion in MySql, about creating a recursive factorial function. it gives me error 1424:
DELIMITER //
create function FactorialR (n int) returns int
begin
declare resultado int default 1;
set resultado=FactorialR(n-1)*n;
return resultado;
end//
DELIMITER ;
MySQL 函数不允许递归。 Recursive stored functions in MySQL
你不会使用递归,但你总是可以使用简单的循环
当然你可以使用允许递归调用的过程
create function FactorialR (n int) returns int
begin
declare resultado BIGint default 1;
DECLARE m int DEFAuLT 1;
loop_label: LOOP
IF m = n THEN
LEAVE loop_label;
END IF;
SET m = m + 1;
set resultado=resultado*m;
END LOOP;
return resultado;
end
SELECT FactorialR(4)
| FactorialR(4) |
| ------------: |
| 24 |
db<>fiddle here
DELIMITER //
create function FactorialR (n int) returns int
begin
declare resultado int default 1;
set resultado=FactorialR(n-1)*n;
return resultado;
end//
DELIMITER ;
MySQL 函数不允许递归。 Recursive stored functions in MySQL
你不会使用递归,但你总是可以使用简单的循环
当然你可以使用允许递归调用的过程
create function FactorialR (n int) returns int begin declare resultado BIGint default 1; DECLARE m int DEFAuLT 1; loop_label: LOOP IF m = n THEN LEAVE loop_label; END IF; SET m = m + 1; set resultado=resultado*m; END LOOP; return resultado; end
SELECT FactorialR(4)
| FactorialR(4) | | ------------: | | 24 |
db<>fiddle here