电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

mysql 遞歸查找菜單節點的所有子節點的方法

瀏覽:5日期:2023-10-08 16:35:52

背景

項目中遇到一個需求,要求查處菜單節點的所有節點,在網上查了一下,大多數的方法用到了存儲過程,由于線上環境不能隨便添加存儲過程,

因此在這里采用類似遞歸的方法對菜單的所有子節點進行查詢。

準備

創建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語句:

比如,要查詢菜單節點12的所有子節點,則查處的結果為:

mysql 遞歸查找菜單節點的所有子節點的方法

分析

首先分析from后面的語句,根據parent_id和id 排序,并將要查詢的菜單節點當做變量,from后面的結果為

mysql 遞歸查找菜單節點的所有子節點的方法

接下來看if(express1,express2,express3)條件語句,if語句類似三目運算符,當exprss1成立時,執行express2,否則執行express3;

FIND_IN_SET(str,strlist),str 要查詢的字符串,strlist 字段名 參數以”,”分隔 如 (1,2,6,8),查詢字段(strlist)中包含(str)的結果,返回結果為null或記錄

如果parent_id 在@pid中,則將@pid 里面再加上parent_id,按行依次執行,執行過程如下表所示:

mysql 遞歸查找菜單節點的所有子節點的方法

這時,顯示的id就是菜單id為12的所有子節點id

到此這篇關于mysql 遞歸查找菜單節點的所有子節點的文章就介紹到這了,更多相關mysql 遞歸查找菜單節點內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 便民信息网_家电维修,家电清洗,开锁换锁,本地家政公司 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | 转子泵_凸轮泵_凸轮转子泵厂家-青岛罗德通用机械设备有限公司 | 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 全国国际学校排名_国际学校招生入学及学费-学校大全网 | 精密冲床,高速冲床等冲压设备生产商-常州晋志德压力机厂 | 超声波清洗机_细胞破碎仪_实验室超声仪器_恒温水浴-广东洁盟深那仪器 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 | TTCMS自助建站_网站建设_自助建站_免费网站_免费建站_天天向上旗下品牌 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 热处理温控箱,热处理控制箱厂家-吴江市兴达电热设备厂 | TPU薄膜_TPU薄膜生产厂家_TPU热熔胶膜厂家定制_鑫亘环保科技(深圳)有限公司 | 真空冷冻干燥机_国产冻干机_冷冻干燥机_北京四环冻干 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 服务器之家 - 专注于服务器技术及软件下载分享 | 陶氏道康宁消泡剂_瓦克消泡剂_蓝星_海明斯德谦_广百进口消泡剂 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 背压阀|减压器|不锈钢减压器|减压阀|卫生级背压阀|单向阀|背压阀厂家-上海沃原自控阀门有限公司 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 聚丙烯酰胺PAM-聚合氯化铝PAC-絮凝剂-河南博旭环保科技有限公司 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 淘趣英语网 - 在线英语学习,零基础英语学习网站 | 蒸压釜_蒸养釜_蒸压釜厂家-山东鑫泰鑫智能装备有限公司 | 臻知网大型互动问答社区-你的问题将在这里得到解答!-无锡据风网络科技有限公司 | 过跨车_过跨电瓶车_过跨转运车_横移电动平车_厂区转运车_无轨转运车 | 干洗店加盟_洗衣店加盟_干洗店设备-伊蔻干洗「武汉总部」 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 流量卡中心-流量卡套餐查询系统_移动电信联通流量卡套餐大全 | 芜湖厨房设备_芜湖商用厨具_芜湖厨具设备-芜湖鑫环厨具有限公司 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 土壤检测仪器_行星式球磨仪_土壤团粒分析仪厂家_山东莱恩德智能科技有限公司 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 馋嘴餐饮网_餐饮加盟店火爆好项目_餐饮连锁品牌加盟指南创业平台 |