mysql獲取選單下面所有子選單的sql
阿新 • • 發佈:2018-11-29
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 (
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
END
裡面建立的時候首先rootId 型別的int
儲存的方法名為router_access_childlist