好吧,我有一个关于 MySql 中的递归的问题,关于创建递归阶乘函数。它给了我错误1424:
Posted
技术标签:
【中文标题】好吧,我有一个关于 MySql 中的递归的问题,关于创建递归阶乘函数。它给了我错误1424:【英文标题】:Well, I have a problem about recursion in MySql, about creating a recursive factorial function. it gives me error 1424: 【发布时间】:2022-01-04 22:20:18 【问题描述】:DELIMITER //
create function FactorialR (n int) returns int
begin
declare resultado int default 1;
set resultado=FactorialR(n-1)*n;
return resultado;
end//
DELIMITER ;
【问题讨论】:
【参考方案1】:mysql 函数不允许递归。 Recursive stored functions in MySQL
【讨论】:
【参考方案2】:你不能使用递归,但你总是可以使用简单的循环
当然你可以使用允许递归调用的 Pocedures
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
|阶乘R(4) | | ------------: | | 24 |SELECT FactorialR(4)
db小提琴here
【讨论】:
哦...谢谢你,多么好的提示。以上是关于好吧,我有一个关于 MySql 中的递归的问题,关于创建递归阶乘函数。它给了我错误1424:的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用重命名命令的情况下递归搜索目录并从文件名中删除开/关括号? [复制]