共计 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
得到的目录结构如下图所示:
查询
先贴出 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 怎样查询子节点就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
向 AI 问一下细节丸趣 TV 网 – 提供最优质的资源集合!
正文完