精华内容
下载资源
问答
  • mysql递归查询所有下级
    千次阅读
    2019-12-26 14:17:46

    mysql递归查询所有下级的sql

     

    解决方法:

    假如tb_manage_user表中uid是主键,creator_id是存储父级的uid,uid为10的所有子级和孙级,如果只想获取以逗号隔开的id串,查询返回字段中可以使用GROUP_CONCAT(uid),下面就是查询sql:http://www.yayihouse.com/yayishuwu/chapter/2368

    更多相关内容
  • MySQL递归查询所有下级节点

    项目场景:

    mysql

    MySQL递归查询所有下级节点。


    问题描述

    例如:在数据库中树形结构的表,想查出某个节点下所有的节点数据

    解决方案:

    select id from (
    select t1.id,t1.inviteId,
    if(find_in_set(inviteId, @pids) > 0, @pids := concat(@pids, ‘,’, id), 0) as isbig
    from (
    select id,inviteId from customer t order by id, inviteId
    ) t1,
    (select @pids := 你的ID) t2
    ) t3 where isbig>0;

    展开全文
  • MySQL递归查询所有下级节点

    千次阅读 2021-07-12 10:38:15
    MySQL递归查询所有下级节点。 先上SQL后来讲解其中的含义。 select id from ( select t1.id,t1.inviteId, if(find_in_set(inviteId, @pids) > 0, @pids := concat(@pids, ',', id), 0) as isbig from ( ...

    MySQL递归查询所有下级节点。

    先上SQL后来讲解其中的含义。

    select id from (
                  select t1.id,t1.inviteId,
                  if(find_in_set(inviteId, @pids) > 0, @pids := concat(@pids, ',', id), 0)  as isbig
                  from (
                       select id,inviteId from customer t order by id, inviteId
                      ) t1,
                      (select @pids := 2009812) t2
                 ) t3 where isbig>0;
    
    id::查询的子集ID
    inviteId:查询的父级ID
    
    @pids := 变量定义。
    
    concat()  拼接字符串
    
    find_in_set(inviteId, @pids)  inviteId 数据是否在@pids字符串中。
      select find_in_set('2','1,2');返回2
      select find_in_set('6','1');返回0
      左边的是否包含在右边。
    
    if(express1,express2,express3)条件语句,if语句类似三目运算符,当exprss1成立时,执行express2,否则执行express3;
    

    t1的为父子级排序,t2为父级ID条件查询,t3条件查询父级的是否存在子集。

    展开全文
  • mysql递归查询下级

    2021-01-18 21:48:15
    最近做项目遇到地区查询问题,涉及递归,在java代码中处理发现效率较低,遂考虑使用sql递归贴上一张表结构: 一、查询下级方法CREATE FUNCTION getChildrenOrg (orgid INT) RETURNS VARCHAR (4000)BEGINDECLARE ...

    最近做项目遇到地区查询问题,涉及递归,在java代码中处理发现效率较低,遂考虑使用sql递归

    贴上一张表结构:

    d8fd00fb91ef0fd84749d9feb77fbfbc.png

    一、查询下级方法

    CREATE FUNCTION getChildrenOrg (orgid INT) RETURNS VARCHAR (4000)

    BEGIN

    DECLARE oTemp VARCHAR (4000);

    DECLARE oTempChild VARCHAR (4000);

    SET oTemp = '';

    SET oTempChild = CAST(orgid AS CHAR);

    WHILE oTempChild IS NOT NULL DO

    SET oTemp = CONCAT(oTemp, ',', oTempChild);

    SELECT

    GROUP_CONCAT(areaid) INTO oTempChild

    FROM

    area

    WHERE

    FIND_IN_SET(parentid, oTempChild) > 0;

    END

    WHILE;

    RETURN oTemp;

    END

    调用方法(查询areaid为620000(甘肃)的地区的全部下级)

    SELECT

    *

    FROM

    area

    WHERE

    FIND_IN_SET(

    areaid,

    getChildrenOrg (620000)

    )

    结果:

    d4824a08c237bbe551f60420c86793fc.png

    一、查询上级方法

    SELECT *

    FROM (

    SELECT

    @r AS _id,

    (SELECT @r := parentid FROM area WHERE areaid = _id) AS parent_id,

    @l := @l + 1 AS lvl

    FROM

    (SELECT @r := 330324, @l := 0) vars,

    area h

    WHERE @r <> 0) T1

    JOIN area T2

    ON T1._id = T2.areaid

    ORDER BY areaid;

    注意其中的330324就是子节点areaid

    89a696cb3d61e21d1767c944fa70ea98.png

    结果如下:

    展开全文
  • MySQL 递归查询下级

    2021-08-07 16:35:58
    我这里查询的是 ID 为10 的四川省的所有下级,结果如下 5 成都市 3 10 25 南充市 3 10 6 双流区 4 5 7 武侯区 4 5 8 锦江区 4 5 9 青羊区 4 5 11 成华区 4 5 26 南部县 4 25 27 顺庆区 4 25 28 高坪区 4 25 29 嘉陵...
  • 主要介绍了根据递归到迭代转化的思路,利用SQL实现了MYSQL递归查询,需要的朋友可以参考下
  • MySql递归查询上级,下级
  • MySQL递归查询下级菜单

    千次阅读 2021-02-05 22:46:07
    正文 在传统的后台管理系统里面经常会需要展示多级菜单关系,今天我们来学一下如何使用一条SQL语句展示多级菜单...现在我们想实现传入一个 uid ,把当前 uid 和其下级单位的 uid 都展示出来,当然我们可以使用代码...
  • 对于数据库中的树形结构数据,如部门表,有时候,我们需要知道某部门的所有下属部分或者某部分的所有上级部门,这时候就需要用到mysql递归查询 最近在做项目迁移,Oracle版本的迁到Mysql版本,遇到有些oracle的...
  • MySQL递归查询、原生SQL查询所有下级用户、SQL树查询
  • 查询 id = 6 的所有父级 SELECT ID.level, DATA.* FROM( SELECT @id as _id, ( SELECT @id := parent_id FROM table1 WHERE id = @id ) as _pid, @l := @l+1 as level FROM table1, (SELECT @id := 6, @l...
  • mysql 递归查询下级

    千次阅读 2018-10-09 21:24:00
    ... (SELECT @pids := 这里是需要查询的user_id) t2 ) t3 WHERE ischild != 0 4.查询结果 user_id = 100 转载于:https://my.oschina.net/likaixuan0/blog/2236937
  • 向上查询自己的上级!#使用的表:`zq_customers` #使用的上级id:`topid` #使用的id:`id` SELECT T2.id, T2.`nickname` FROM ( SELECT @r AS _id, (SELECT @r := `topid` FROM `zq_customers` WHERE id = _id) AS...
  • mysql递归查询,mysql中从子类ID查询所有父类(做无限分类经常用到)由于mysql 不支持类似 oracle with ...connect的 递归查询语法之前一直以为类似的查询要么用存储过程要么只能用程序写递归查询.现在发现原来一条sql...
  • mysql递归搜索再之前得原创文档里已经写明了,这个网上比较多。直接进入正题:原创手写反递归package com.kb.nxccims.common.util;import java.util.ArrayList;import java.util.List;import ...
  • /** 获取所有上级* @param $id String 待查找的id* @return String | NULL 失败返回null*/public function getSup($id,$n = 0){$sql = "SELECT `pid` from `aaa` where `id` =" . $id;$res = $this->db->get...
  • MYSQL根据id递归向下查询所有子级

    万次阅读 多人点赞 2020-08-29 16:49:02
    1 、递归查询sql SELECT ID.LEVEL, DATA.* FROM ( SELECT @ids AS _ids, ( SELECT @ids := GROUP_CONCAT( id ) FROM 表名 WHERE FIND_IN_SET( 父级 id字段, @ids ) ) AS cids, @l := @l + 1 AS LEVEL ...
  • mysql 递归查询上级\下级

    千次阅读 2019-10-28 16:04:49
    查询下级信息 SELECT t3.u_id, t3.u_parent_id, t3.name, t3.ischild FROM ( SELECT t1.*, IF ( find_in_set( u_parent_id, @pids ) > 0, @pids := concat( @pids, ',', u_id ), 0 ) AS ischild FROM ( SELECT...
  • 向上递归 解释:先看T1 t中先将参数赋值给@menuId变量 此时select中的id为500202 接着查询出父id 并将其赋值到@menuId中 ,此时@menuId就是父id了,而它会再次查询父id 以此类推 mark 则为执行顺序 用来倒序排序使用 ...
  • 根据父级的区划代码查询所属下级所有区划信息; 根据子级ID查询隶属行政区划信息; 根据组织机构ID查询所有子级组织机构; 数据准备 为了测试,我们首先来创建一张拥有上下级关系的表,这里选择创建一张区划...
  • mysql根据父节点递归查询所有子节点

    千次阅读 2021-09-09 09:42:14
    mysql根据父节点递归查询所有子节点 在开发中,我们经常遇到通过父级节点查询所有子节点的需求,我们知道在mysql中我们可以自定义函数的方式来实现这个功能,但是自定义函数根据父节点递归查询所有子节点的方法需要...
  • 查询资料,发现group_concat函数返回的字符长度是有限制的,解决方案就是在MySql配置文件my.ini中加上 group_concat_max_len = 200000 改大就行了 另外一种方法 递归插入临时表 ...
  • 方法一、mysql中建立递归查询的方法 -- DROP FUNCTION `getChildrenOrg` CREATE FUNCTION `getChildrenOrg`(uuid INT) RETURNS text CHARSET utf8 BEGIN DECLARE sTemp text; DECLARE sTempChd text; SET ...
  • 结果的结构为 用户id-层级,再执行程序运算时可以逗号‘,’劈开为数组进行遍历,再以’-‘进行分割,就可以算出所有下级及所处层级。 如果是在MySQL 中 可以利用FIND_IN_SET()函数去匹配用户id做关联查询条件,...
  • MySql8使用WITHRECURSIVE进行递归查询下级节点数据。
  • select deptCode from ( SELECT deptCode,ischild FROM ( SELECT t1.dept_code AS deptCode, IF ( find_in_set( parent_code, @pids ) > 0, @pids := concat( @pids, ',', dept_code ), 0 ) AS ischild ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,133
精华内容 453
热门标签
关键字:

mysql递归查询所有下级

mysql 订阅