mysql获取菜单下面所有子菜单(父类查询所有无限级子类)的sql

select * from (
      select t1.*,
      if(find_in_set(ac_pid, @pids) > 0, @pids := concat(@pids, ',', rc_id), 0) as ischild
      from (
           select * from ".$this->trueTableName." t where t.is_show = 1 order by sort asc,rc_id asc
          ) t1,
          (select @pids := 226) t2
     ) t3 where ischild != 0

里面替换两个字段就好,一个$this->trueTbaleName表明

ac_pid对应的父亲id字段

rc_id 标识id

is_show =1 查询不隐藏的

排序方式

sort asc 和rc_id asc

226查询rc_id =226下面所有子菜单

方法2:

就是存储过程和方法

我的是navcat里面创建的

BEGIN
#Routine body goes here...
drop TEMPORARY TABLE IF EXISTS tmpLst;   
  create TEMPORARY TABLE IF NOT EXISTS tmpLst (
sno INT PRIMARY KEY AUTO_INCREMENT,
id INT,
depth INT
);         
  call router_access_childlist(rootId,0);   
       
  select 
mami_router_access.rc_id,
mami_router_access.ac_pid,
mami_router_access.node_name,
tmpLst.depth
FROM tmpLst,mami_router_access 
WHERE tmpLst.id=channel.rc_id ORDER BY tmpLst.sno;   

 

END

里面创建的时候首先rootId   类型的int

保存的方法名为router_access_childlist

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值