概述
①查询父级
表:
先给表船舰函数:
1 CREATE FUNCTION `getParentList`(rootId varchar(100)) 2 RETURNS varchar(1000) 3 BEGIN 4 DECLARE fid varchar(100) default ''; 5 DECLARE str varchar(1000) default rootId; 6 7 WHILE rootId is not null do 8 SET fid =(SELECT PID FROM DIGUI WHERE ID = rootId); 9 IF fid is not null THEN 10 SET str = concat(str, ',', fid); 11 SET rootId = fid; 12 ELSE 13 SET rootId = fid; 14 END IF; 15 END WHILE; 16 return str; 17 END
然后可以查询父级了:
1 SELECT 2 * 3 FROM 4 digui 5 WHERE 6 FIND_IN_SET(id, getParentList('9'))
②查询子集(参考:https://www.cnblogs.com/rainydayfmb/p/8028868.html)
表:
SQL:查询id=12的子集
1 SELECT 2 t3.id, 3 t3.parent_id, 4 t3.menu_name 5 FROM 6 ( 7 SELECT 8 t1.id, 9 t1.parent_id, 10 t1.menu_name, 11 IF 12 ( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), 0 ) AS ischild 13 FROM 14 ( SELECT id, parent_id, menu_name FROM menu t WHERE t.STATUS = 1 ORDER BY parent_id, id ) t1, 15 ( SELECT @pids := 12 ) t2 16 ) t3 17 WHERE 18 ischild != 0
结果:
ps:oracle递归查询:https://www.cnblogs.com/lgqrlchinese/p/11381766.html
最后
以上就是飞快白开水为你收集整理的mysql递归查询(父级,子集)的全部内容,希望文章能够帮你解决mysql递归查询(父级,子集)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复