如何使递归查询在较低版本的mysql中运行?

ivqmmu1c  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(452)

这个问题在这里已经有答案了

统计表中分层数据的所有子节点(3个答案)
查询树的项目计数(4个答案)
两年前关门了。
在local env(mariadb 10.2.10)中,我使用函数“no \u of \u substands”来计算当前用户有多少子体:

DELIMITER //

CREATE FUNCTION no_of_descendants (f_id INT)
RETURNS INTEGER
BEGIN
DECLARE numberOf INT;

WITH RECURSIVE descendant_users(id,parent_id) AS
(
    SELECT id,parent_id
    FROM app_users
    WHERE id = f_id
    UNION
    Select sub.id, sub.parent_id
    FROM app_users sub, descendant_users au
    WHERE  sub.parent_id = au.id
)
select count(*) INTO numberOf from descendant_users;

RETURN numberOf;
END; //

DELIMITER ;

它工作得很完美,但在客户机服务器上,5.7版中有mysql,它不支持递归语句。我不能更新到8.0,也不能安装其他工具。是否可以用mysql v5.7可以运行的方式重新生成这个查询?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题