mysql怎样查询子节点

53次阅读
没有评论

共计 1307 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章将为大家详细讲解有关 mysql 怎样查询子节点,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

mysql 查询子节点的方法:首先创建 menu 表,并插入数据;然后使用语句进行查询,代码为【select id from(select t1.id,if(find_in_set(parent_id, @pids) 0……)】。

mysql 查询子节点的方法:

创建 menu 表:

CREATE TABLE `menu` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 菜单 id ,
 `parent_id` int(11) DEFAULT NULL COMMENT 父节点 id ,
 `menu_name` varchar(128) DEFAULT NULL COMMENT 菜单名称 ,
 `menu_url` varchar(128) DEFAULT COMMENT 菜单路径 ,
 `status` tinyint(3) DEFAULT 1 COMMENT 菜单状态 1- 有效;0- 无效 ,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12212 DEFAULT CHARSET=utf8;

插入数据:

INSERT INTO `menu` VALUES ( 0 , null, 菜单 0 , , 1 
INSERT INTO `menu` VALUES ( 1 , 0 , 菜单 1 , , 1 
INSERT INTO `menu` VALUES ( 11 , 1 , 菜单 11 , , 1 
INSERT INTO `menu` VALUES ( 12 , 1 , 菜单 12 , , 1 
INSERT INTO `menu` VALUES ( 13 , 1 , 菜单 13 , , 1 
INSERT INTO `menu` VALUES ( 111 , 11 , 菜单 111 , , 1 
INSERT INTO `menu` VALUES ( 121 , 12 , 菜单 121 , , 1 
INSERT INTO `menu` VALUES ( 122 , 12 , 菜单 122 , , 1 
INSERT INTO `menu` VALUES ( 1221 , 122 , 菜单 1221 , , 1 
INSERT INTO `menu` VALUES ( 1222 , 122 , 菜单 1222 , , 1 
INSERT INTO `menu` VALUES (12211 , 1222 , 菜单 12211 , , 1

得到的目录结构如下图所示:

mysql 怎样查询子节点

查询

先贴出 sql 语句:

select id from (
 select t1.id,
 if(find_in_set(parent_id, @pids) 0, @pids := concat(@pids, , , id), 0) as ischild
 from (select id,parent_id from re_menu t where t.status = 1 order by parent_id, id) t1,
 (select @pids := 要查询的菜单节点 id) t2
 ) t3 where ischild != 0

比如,要查询菜单节点 12 的所有子节点, 则查处的结果为:

mysql 怎样查询子节点

关于 mysql 怎样查询子节点就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计1307字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)