CREATE DEFINER=`root`@`%` FUNCTION `getoid`(rootId INT) RETURNS varchar(1000) CHARSET utf8
    READS SQL DATA
BEGIN
	DECLARE sTemp VARCHAR(1000);
    DECLARE sTempChd VARCHAR(1000);
    SET sTemp = '$';
    SET sTempChd =cast(rootId as CHAR);
    WHILE sTempChd is not null DO
    	SET sTemp = concat(sTemp,',',sTempChd);
        SELECT group_concat(parens_id) INTO sTempChd FROM  p_organization where FIND_IN_SET(oid,sTempChd)>0;
   	END WHILE;
    RETURN sTemp; 
select getoid(1)
返回当前和父级的id
 代码是自己项目中的部分代码,对于小白可能不太友好,容易看不太懂,代码其实不是很重要,重要的是设计思路,比如我们做的java三大排序算法的时候,和打印菱形、五角星图案时候,只要自己明白的了设计思路,代码写起来就容易多了。
 下面代码实现的思路还是,通过不断循环自身的方法,知道下级没有数据或者为null时,结局遍历循环。
树形结构数据中,根据父类id获取孙后代id集合和 树形结构数据还原成普通list集合方法
     *获得下级id集合
建表(只做示例,可以自己扩展其他字段):
CREATE TABLE `menu` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '菜单id',
  `parent_id` int(11) DEFAULT NULL COMMENT '父节点id',
  `menu_name` varchar(128) DEFAULT NULL COMM...
DELIMITER $
DROP PROCEDURE if EXISTS getParLst;
CREATE PROCEDURE getParLst(IN rootId VARCHAR(50),OUT sTemp VARCHAR(1000))
BEGIN
    DECLARE sTempPar VARCHAR(1000); 
    SET sTemp = ''; 
    SET sTempPar =rootId; 
    #循环递归
    WHILE sTempPar 
				
sql根据一个节点ID查询父级信息 文章目录sql根据一个节点ID查询父级信息前言一、问题描述?二、数据库相关设计1.数据结构设计2.部分数据3.sql 根据id 查询父级信息sql 脚本4.可能用到(mybatis 大于等于小于等于的写法)总结 上次写了根据一个ID,查询下级用户信息,本次反着来,通过一个ID查询父级的信息。 一、问题描述? 查询物品分类信息,需要查询物品的一级分类,二级分类(我做的是商品二级分类信息) 解决方法: 第一种是代码,递归。 第二种就是用sql解决。 CREATE TABLE `tree_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 插入记录 INSERT INTO `tree_table`(`id`, `pa
CREATE TABLE `treetype` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) DEFAULT NULL, `fid` INT DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=13 DEFAULT CHARSET=ut select id from  sys_dict start with id='5' connect by prior fid=id union (select id from  sys_dict start with id='5' connect by prior id=fid) select id from  sys_dict start with id='5' co SELECT @r AS _id, ( SELECT @r := parent_id FROM book_menu WHERE menu_id = _id ) AS parent_id, @s := @s + 1 AS sort ( SELECT @r := 9, @s := 0 ) temp, book_menu WHERE JOIN book_menu t2 ON t1._id = t2.menu_id book_menu 表 SELECT @r AS _id, (SELECT @r := FParentID FROM t_module_checkin_class WHERE FID = _id) AS FParentID, @l := @l + 1 AS lvl (SELECT @r := 6, @l := 0) vars, t_module_checkin_clas