MySQL数据库(函数):菜单栏目用户部门递归查询

Posted guxiaohai_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库(函数):菜单栏目用户部门递归查询相关的知识,希望对你有一定的参考价值。

说明: 利用find_in_set()函数和group_concat()函数实现递归查询

一:向下查询:

DROPFUNCTION IF EXISTS testHS;
DELIMITER ;;
CREATE FUNCTION testHS(testId INT)
RETURNS VARCHAR(4000)
BEGIN
DECLARE sTemp VARCHAR(4000);
DECLARE sTempChd VARCHAR(4000);

SET sTemp='$';
SET sTempChd = CAST(testId AS CHAR);

WHILE sTempChd IS NOT NULL DO
SET sTemp= CONCAT(sTemp,',',sTempChd);
SELECT GROUP_CONCAT(id) INTO sTempChd FROM testInfo WHERE FIND_IN_SET(parentId,sTempChd)>0;
END WHILE;
RETURN sTemp;
END;;
DELIMITER ;

二:向上查询

DROP FUNCTION IF EXISTS testHS;
DELIMITER;;
CREATE FUNCTION testHS(testId VARCHAR(20))
RETURNS VARCHAR(4000)
BEGIN
DECLARE sTemp VARCHAR(4000);
DECLARE sTempChd VARCHAR(4000);

SET sTemp='$';
SET sTempChd = CAST(testId AS CHAR);
SET sTemp = CONCAT(sTemp,',',sTempChd);

SELECT parentId INTO sTempChd FROM testInfo WHERE id = sTempChd;
WHILE sTempChd <> 0 DO
SET sTemp = CONCAT(sTemp,',',sTempChd);
SELECT parentId INTO sTempChd FROM testInfo WHERE id = sTempChd;
END WHILE;
RETURN sTemp;
END;;
DELIMITER ;

以上是关于MySQL数据库(函数):菜单栏目用户部门递归查询的主要内容,如果未能解决你的问题,请参考以下文章

MySQL(菜单部门等信息)递归查询

MySQL查询父节点下面的所有子孙节点,查询用户列表时多级(公司)部门处理,根据反射,递归树形结构工具类

MySQL查询父节点下面的所有子孙节点,查询用户列表时多级(公司)部门处理,根据反射,递归树形结构工具类

mysql中的递归调用

多级部门查询性能问题解决方案

sql 怎么递归查询的方法: