精华内容
下载资源
问答
  • 2021-01-11 19:04:17

    1、表结构:

    CREATE TABLE `t_busi_system` (

    `ID` varchar(64) NOT NULL COMMENT '标识',

    `PARENT_ID` varchar(64) DEFAULT NULL COMMENT '父id',

    `CREATE_DATE` varchar(64) DEFAULT NULL COMMENT '创建时间',

    `CREATE_USER_ID` varchar(64) DEFAULT NULL COMMENT '创建人id',

    `CREATE_USER_NAME` varchar(64) DEFAULT NULL COMMENT '创建人姓名',

    `LAST_UPDATE_DATE` varchar(64) DEFAULT NULL COMMENT '最后更新时间',

    `LAST_UPDATE_USER_ID` varchar(64) DEFAULT NULL COMMENT '最后更新人id',

    `LAST_UPDATE_USER_NAME` varchar(64) DEFAULT NULL COMMENT '最后更新人姓名',

    `SYSTEM_NAME` varchar(255) DEFAULT NULL COMMENT '系统名称'

    PRIMARY KEY (`ID`)

    )

    2、SQL:

    SELECT T2.id, T2.SYSTEM_NAME

    FROM (

    SELECT

    @r AS _id,

    (SELECT @r := parent_id FROM T_BUSI_SYSTEM WHERE id = _id) AS parent_id,

    @l := @l + 1 AS lvl

    FROM

    (SELECT @r := '065efb0ee42e4c77a401bcf0f3eccf20', @l := 0) vars,

    T_BUSI_SYSTEM h

    WHERE @r <> 0) T1

    JOIN T_BUSI_SYSTEM T2

    ON T1._id = T2.id

    ORDER BY T1.lvl DESC

    更多相关内容
  • mysql查询根据id查询父节点,返回拼接好的字符串(父节点1-父节点2-当前节点),或者只返回最顶级父节点名称。 一、获取拼接好的父节点字符串 CREATE DEFINER=`root`@`%` FUNCTION `...

    一、获取拼接好的父节点字符串

    CREATE DEFINER=`root`@`%` FUNCTION `getVehicleComponentParentName`(`nodeId` int) RETURNS varchar(400) CHARSET utf8
    BEGIN
    	DECLARE parentId INT;
      DECLARE parentName VARCHAR(400);
    	DECLARE pId INT;
    	DECLARE num INT;
    	SET parentId = 99999;
    	SET parentName = '';
    	SET pId = `nodeId` ;
    select count(1) INTO num from vehicle_component where id = pId;
    if num = 0 then set parentId = 0;
    else 
    	select parent_id INTO parentId from vehicle_component where id = pId;
    	select `name` INTO parentName from vehicle_component where id = pId;
    end if;
    WHILE parentId <> 0 DO
    	set pId = parentId;
    	select parent_id INTO parentId from vehicle_component where id = pId;
    	select CONCAT_WS('-', `name`, parentName) INTO parentName from vehicle_component where id = pId;
    END WHILE;
    	RETURN parentName;
    END

    二、获取最顶级父节点

    CREATE DEFINER=`root`@`%` FUNCTION `getVehicleComponentParentName2`(`nodeId` int) RETURNS varchar(400) CHARSET utf8
    BEGIN
    	DECLARE parentId INT;
      DECLARE parentName VARCHAR(400);
    	DECLARE pId INT;
    	DECLARE num INT;
    	SET parentId = 99999;
    	SET parentName = '';
    	SET pId = `nodeId` ;
    select count(1) INTO num from vehicle_component where id = pId;
    if num = 0 then set parentId = 0;
    else 
    	select parent_id INTO parentId from vehicle_component where id = pId;
    	select `name` INTO parentName from vehicle_component where id = pId;
    end if;
    WHILE parentId <> 0 DO
    	set pId = parentId;
    	select parent_id INTO parentId from vehicle_component where id = pId;
    	select name INTO parentName from vehicle_component where id = pId;
    END WHILE;
    	RETURN parentName;
    END

    数据库中表结构:

    CREATE TABLE `vehicle_component` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `parent_id` int(11) unsigned DEFAULT NULL COMMENT '父级部件id',
      `type` varchar(64) DEFAULT NULL COMMENT '部件类型,关联字典表code=VEHICLE_COMPONENT_TYPE',
      `structure_type` varchar(64) DEFAULT NULL COMMENT '结构类型,关联字典表pcode=VEHICLE_STRUCTURE_NODE_TYPE',
      `level` varchar(32) DEFAULT NULL COMMENT '层级',
      `code` varchar(64) DEFAULT NULL COMMENT '部件编码',
      `name` varchar(64) DEFAULT NULL COMMENT '名称',
      `material_number` varchar(64) DEFAULT NULL COMMENT '物料编码(备用)',
      `count` int(11) DEFAULT NULL COMMENT '数量(备用)',
      `remark` varchar(256) DEFAULT NULL COMMENT '备注',
      `status` tinyint(3) DEFAULT '1' COMMENT '状态  1:正常   9:删除',
      `creater_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
      `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新人',
      `create_user` int(11) DEFAULT NULL COMMENT '创建人',
      `update_user` int(11) DEFAULT NULL COMMENT '更新人',
      `sort` tinyint(2) unsigned DEFAULT NULL COMMENT '排序',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB AUTO_INCREMENT=140 DEFAULT CHARSET=utf8 COMMENT='车辆部件表';

    使用:

    1.首先在数据库中创建对应的自定义函数“getVehicleComponentParentName”或“getVehicleComponentParentName2”;

    2.调用时,直接使用如:select getVehicleBindComponentParentName(139) from vehicle_component;

      其中139是传入的当前节点的id。

    备注:

    1.mysql查看自定义函数命令:show  create function "函数名"

    2.mysql创建自定义函数命令格式:

    create function ym_date(mydate date)
        returns varchar(15)
        begin
            return date_format(mydate,'%Y-%m');
        end

    3.mysql删除自定义函数命令:drop function "函数名"

    展开全文
  • 描述:在使用ant-design-vue的树选择组件(TreeSelect)时,需要获取到旋转节点的所有父节点,并通过数组的形式返回 二、实现 ```javascript /** * @description: * @param {*} tree 树 * @param {*} menuid 选择...

    一、场景

    描述:在使用ant-design-vue的树选择组件(TreeSelect)时,因为后端兄弟的要求,需要获取到选中节点的所有父节点,并通过数组的形式返回选中节点和该节点的各级父节点

    二、实现

    /**
         * @description: 
         * @param {*} tree 树
         * @param {*} menuid 选择的节点
         * @return {*}
         */    
        treeFindPath(tree, menuid) {
          var path = [];
          if (!tree) return [];
          var forFn = function (tree, menuid) {
            for (var i = 0; i < tree.length; i++) {
              // 存放最后返回的内容,返回text集合
              var data = tree[i];
              path.push(data.key);
              if (data.key === menuid) return path;
              if (data.children) {
                const findChildren = forFn(data.children, menuid);
                if (findChildren) return findChildren;
              }
              path.pop();
            }
          };
          forFn(tree, menuid);
          return path;
        },
    
    展开全文
  • 1. 查询父节点: SELECT m.* FROM region m, ( SELECT @r AS _id, ( SELECT @r := parent_id FROM region WHERE region_index_code = _id) AS parent_id FROM ( SELECT @r := '000e487e13dd4867888e232ba57d59e...

    1. 查询父节点:

    SELECT m.*
    FROM region m, (
    SELECT
      @r AS _id,
      (
    SELECT @r := parent_id
    FROM region
    WHERE region_index_code = _id) AS parent_id
    FROM
      (
    SELECT @r := '000e487e13dd4867888e232ba57d59e7', @s := 0) temp,
      region) t
    WHERE m.region_index_code = t._id

    2. 查询子节点:

    SELECT
    	T3.region_index_code
    FROM
    	(
    SELECT
    	@region_index_code AS _ids,
    	( SELECT @region_index_code := GROUP_CONCAT( region_index_code ) FROM region WHERE FIND_IN_SET( parent_id, @region_index_code ) ) AS T1,
    	@l := @l + 1 AS level_ 
    FROM
    	region,
    	( SELECT @region_index_code := '15b0bfad3263415ba63c1e39da8737ce', @l := - 1 ) T4 
    WHERE
    	@region_index_code IS NOT NULL 
    	) T2,
    	region T3 
    WHERE
    	FIND_IN_SET( T3.region_index_code, T2._ids ) 
    	AND region_index_code != '15b0bfad3263415ba63c1e39da8737ce' 
    	AND `status` = 1 

    3.注意事项

    MySql中group_concat函数很好用,可以将多列的值拼合成逗号分开的行。

    但是此函数默认长度为1024个字符,经常会出现溢出的现象,溢出后拼合字符串长度就会从第1024个字符截断。

    解决此问题的方法是修改函数长度

        3.1 方法一:修改后需重新建立连接生效,但是mysql服务重启后又会失效。

    
    
        SET GLOBAL group_concat_max_len=102400;
    
        SET SESSION group_concat_max_len=102400;
    

     

      3.2 方法二:修改my.ini配置文件,重启mysql服务后生效

    group_concat_max_len = 102400

     

    参考链接:

    https://blog.csdn.net/xubenxismile/article/details/107662209?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control

    展开全文
  • 但是最年轻的公共父节点就是离得最近的父节点,即节点B 步长比对 从根节点A开始走,I点的步长是2, T的步长是4,可以了解到I在T的前面,存在两种情况: I是T的祖先,则二者的公共祖先就是I I不是T的祖先,则T往上找...
  • select t.ORG_CNAME from TXSOG01 t start with t.org_id='492' connect by prior...关键词prior,prior跟父节点列PARENT_ORG_ID放在一起,就是往父结点方向遍历;prior跟子结点列org_id放在一起,则往叶子结点方向遍历
  • 在工作项目中经常遇到树形结构的数据,而往往我们需要用递归来实现,下面就给大家列举常用的递归操作。 let treeList=[ { id:'1', name:'一', children:[ { id:'1-1', ...
  • // 判断当前节点是否有父节点,并且父节点上的data不能是数组 if (node.parent && !Array.isArray(node.parent.data)) { // 将父节点上data的menuid存储在 `parentlist` 里 node.parent.data instanceof...
  • 这个能查到父节点下的子节点(不包括父节点) SELECT staff_id, parent_staff_id FROM ( SELECT t1.staff_id, t1.parent_staff_id, IF ( find_in_set( parent_staff_id, @pids ) > 0, @pids := c...
  • 在tree组件中用@current-change="getLeafKeys"事件 methods中 ... // 判断当前节点是否有父节点,并且父节点上的data不能是数组 if (node.parent && !Array.isArray(node.parent.data)) { .
  • ①查找某一结点的父节点; ②查找某一节点的子节点。 代码如下: package generalTree; import java.util.ArrayList; import java.util.List; public class GeneralTree { private List lst = new ArrayList...
  • 同时给你一个下标从 0 开始的整数数组 parents 表示这棵树,其中 parents[i] 是节点 i 的父节点。由于节点 0 是根,所以 parents[0] == -1 。 一个子树的 大小 为这个子树内节点的数目。每个节点都有一个与之关联的 ...
  • 统计最高分的节点数目-python

    千次阅读 2022-03-11 22:33:39
    leetCode第2049题 统计最高...同时给你一个下标从 0 开始的整数数组 parents 表示这棵树,其中 parents[i] 是节点 i 的父节点。由于节点 0 是根,所以 parents[0] == -1 。 一个子树的 大小 为这个子树内节点的数目。每
  • 在层次模型中有几个术语:根节点,父亲节点,叶节点 ...父亲节点是指在当前节点的上面节点,上面的节点就叫下面节点的父节点; 叶节点是指在当前节点之上没有节点时,这样的节点就叫做叶节点。...
  • 会根据故障等级和设备id去数据库消除,然后再action层获取数据(这边方法下一个文章说一下),前台就根据这个子节点去修改当前的icon,然后选中子节点的父节点 ,去遍历当前子节点判断当前父节点最高的故障等级...
  • 同时给你一个下标从0开始的整数数组parents表示这棵树,其中parents[i]是节点 i的父节点。由于节点 0是根,所以parents[0] == -1。 一个子树的 大小为这个子树内节点的数目。每个节点都有一个与之关联的分数。求出...
  • 同时给你一个下标从0开始的整数数组parents表示这棵树,其中parents[i]是节点 i的父节点。由于节点 0是根,所以parents[0] == -1。 一个子树的 大小为这个子树内节点的数目。每个节点都有一个与之关联的分数。求出...
  • 选中某一节点,自动选中其所有父级节点的问题 最近在项目中一直用到树结构比较多,自然的各种奇葩要求都会遇到,也会有各种天马行空的想法,这应该是好的。下面是bootstrap的一个treeview结构中遇到了一个要求,...
  • 同时给你一个下标从0开始的整数数组parents表示这棵树,其中parents[i]是节点 i的父节点。由于节点 0是根,所以parents[0] == -1。 一个子树的 大小为这个子树内节点的数目。每个节点都有一个与之关联的分数。求出...
  • 统计最高点的节点数目
  • 同时给你一个下标从0开始的整数数组parents表示这棵树,其中parents[i]是节点i的父节点。由于节点0是根,所以parents[0] == -1。 一个子树的大小为这个子树内节点的数目。每个节点都有一个与之关联的分数。求出某个...
  • (题目的说法虽然没什么错误,但我还是觉得十分难理解,所以直接看题目下面示例1的那张图会比较好)第一段就是说一个数组parents代表每个节点的父节点是谁,0节点一定是根节点,所以数组第一个数一定为-1。...
  • 统计最高分的节点数目

    千次阅读 2022-03-13 10:16:23
    同时给你一个下标从 0 开始的整数数组 parents 表示这棵树,其中 parents[i] 是节点 i 的父节点。由于节点 0 是根,所以 parents[0] == -1 。 一个子树的 大小 为这个子树内节点的数目。每个节点都有一个与之关联的 ...
  • 2049.统计最高分的节点数目

    千次阅读 2022-03-11 16:46:55
    同时给你一个下标从 0 开始的整数数组 parents 表示这棵树,其中 parents[i] 是节点 i 的父节点。由于节点 0 是根,所以 parents[0] == -1 。 一个子树的 大小 为这个子树内节点的数目。每个节点都有一个与之关联的 ...
  • 同时给你一个下标从 0 开始的整数数组 parents 表示这棵树,其中 parents[i] 是节点 i 的父节点。由于节点 0 是根,所以 parents[0] == -1 。 一个子树的 大小 为这个子树内节点的数目。每个节点都有一个与之关联的 ...
  • 2049. 统计最高分的节点数目题解 题目来源:2049. 统计最高分的节点数目 2022.03.11 每日一题 LeetCode 题解持续更新中Github仓库地址 CSDN博客地址
  • leetcode2049.统计最高分的节点数目

    千次阅读 2022-03-14 15:53:21
    同时给你一个下标从 0 开始的整数数组 parents 表示这棵树,其中 parents[i] 是节点 i 的父节点。由于节点 0 是根,所以 parents[0] == -1 。 一个子树的 大小 为这个子树内节点的数目。每个节点都有一个与之关联的 ...
  • 【分析】这道题目删去一个节点后,组成的子树可能是父节点的那一堆,以及自己的两个儿子组成的两个子树(可能没有)。所以如果能统计出以每个节点为根节点组成的子树所含节点的个数这个问题就迎刃而解了。 由于题目...
  • 一张school表,字段有主键id和父层级id,大学是最高的一个父节点,降序排序就是:大学>高中>小学>幼儿园,根据mysql8递归函数,可实现根据不同节点向上或者向下查询所有有关联的节点。 效果图 根据父节点...
  • 同时给你一个下标从 0 开始的整数数组 parents 表示这棵树,其中 parents[i] 是节点 i 的父节点。由于节点 0 是根,所以 parents[0] == -1 。 一个子树的 大小 为这个子树内节点的数目。每个节点都有一个与之关联的 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,785
精华内容 16,714
关键字:

最高父节点