• mysql用一句sql获取无限上级/下级


    之前项目里要用到无限上下级的sql,在度娘里翻了十几页都是复制粘贴还不管对错的,真的是没人品!好气,只好静下心自己慢慢研究他们错误的地方,慢慢改过来了!希望幸运儿最先看到的是我的这个,不用像我当初那样悲催

     1 //查询无限下级sql
     2 SELECT ID.level, DATA.* FROM( //ID.level 这个是查询到第几个级别了 2:就是当前用户的直属下级,3:就是下级的直推下级!DATA.* 就是所有的用户信息
    3 SELECT 4 @ids AS _ids,//@会话级变量,不需要声明,直接写直接用. 这句话就是给这个变量起个别名,别多想! 5 ( SELECT @ids := GROUP_CONCAT(id) // group_count 1、功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。2、语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
    6 FROM member_user 7 WHERE FIND_IN_SET(intro_user, @ids) //FIND_IN_SET 跟in类似,@ids这个变量里面 包含intro_user 这个id的! intro_user 你自己定义的父级id的名字 8 ) AS cids, 9 @l := @l+1 AS LEVEL //LEVEL 这个level 就是第一行的ID.leve 没用可以不要 10 FROM member_user, 11 (SELECT @ids :='f946aaaf1e9b43a597451f6a8e4ac389', @l := 0 ) b //@ids :='f946aaaf1e9b43a597451f6a8e4ac389' 这个是你要查下级的id 12 WHERE @ids IS NOT NULL 13 ) id, member_user DATA //member_user 就是你的表,所有的都要换了 14 WHERE FIND_IN_SET(DATA.id, ID._ids) 15 ORDER BY ID.level, id 16 17 //查询无限父级sql 18 SELECT T1.lvl,T2.* //lvl 跟查询无限下级的level一样 19 FROM ( 20 SELECT 21 @r AS _id, //变量取个别名 22 (SELECT @r := intro_user FROM member_user WHERE id = _id limit 1) AS intro_user, //limit 1不加会报错,因为子查询不允许有多个,我当时没加在navicat是没问题,但是项目里就报错! intro_user 你的父级id的字段 member_user 你的表名 23 @l := @l + 1 AS lvl // T1.lvl 的来历,没用可以不要!或者感觉看不懂可以取消了 24 FROM 25 (SELECT @r := '9a61ebfffcc5430480fdd21245b1bf0c',@l := 0) vars, // @r := '9a61ebfffcc5430480fdd21245b1bf0c' 就是你要查的id,@l := 0 定义T1.lvl的初始值为0 没用可以取消不要 26 member_user h 27 WHERE intro_user <> 0) T1 //intro_user 你的父级id的字段 查询条件就是不等于0,可以根据自己业务做修改 28 JOIN member_user T2 29 ON T1.intro_user = T2.id 30 ORDER BY T1.lvl DESC

    这个sql其实静下心来,慢慢拆解来看,其实就是几个子查询,确定了顺序,自己多看几遍就会了!goodluck!

  • 相关阅读:
    【C语言】中的版本规范(C89 C99等)
    【微机】计算机系统组成
    【微机】验证负数以补码存储程序 C语言
    katalon studio升级到6.3.3版本后如何生成测试报告
    使用Katalon Studio进行数据驱动测试的方法(转)
    katalon 参数化
    Katalon中的测试对象、用例和套件的命名规范
    转载kalaton故障处理
    Katalon Studio IE浏览器 不好用 无法录制
    Katalon Studio操作界面详细说明(转载)
  • 原文地址:https://www.cnblogs.com/xuefeilong/p/13750683.html
Copyright © 2020-2023  润新知