当前位置: 首页 > news >正文

mysql树状结构查询及注意事项

一、说明

由于Mysql不像oracle一样支持树状查询,需要用户自行处理,本文记录了一种常见的通过自定义函数的方式进行mysql树状查询的方法,以及使用的注意事项。

二、函数

CREATE DEFINER=`root`@`localhost` FUNCTION `get_child_menus`(`in_pid` varchar(64)) RETURNS varchar(10000) CHARSET utf8mb4
BEGINdeclare ids varchar(10000) default '';declare tempids varchar(10000);set tempids = in_pid;while tempids is not null doset ids = CONCAT_WS(',',ids,tempids);select GROUP_CONCAT(id) into tempids from tbl_menu where FIND_IN_SET(pid,tempids)>0;end while;return ids;
END

三、使用

select * from tbl_menu where find_in_set(id, get_child_menus("root_menu_id_0000000"));

四、注意事项

函数使用了GROUP_CONCAT函数聚合菜单id,有可能会存在结果超长被截取的情况,可以使用如下方法处理:

SET group_concat_max_len=556809;
http://www.lryc.cn/news/216958.html

相关文章:

  • TimeGPT-1——第一个时间序列数据领域的大模型他来了
  • 通过Google搜索广告传送的携带木马的PyCharm软件版本
  • 网站文章收录因素,别人复制文章排名比你原创的好?
  • C#开源的一个能利用Windows通知栏背单词的软件 - ToastFish
  • 速拿offer,超全自动化测试面试题+答案汇总,背完还怕拿不到offer?
  • LeetCode----1415. 长度为 n 的开心字符串中字典序第 k 小的字符串
  • 2310C++协程超传服务器
  • 【排序算法】 计数排序(非比较排序)详解!了解哈希思想!
  • 20231103配置cv180zb的编译环境【填坑篇】
  • 足底筋膜炎如何治疗
  • rabbitMq路由键介绍
  • 【python基础】python切片—如何理解[-1:],[:-1],[::-1]的用法
  • 剑指JUC原理-9.Java无锁模型
  • 汽车托运使用的场景
  • 机器学习 - 加油站数据分析
  • 基于CMFB余弦调制滤波器组的频谱响应matlab仿真
  • helm一键部署grafana
  • pytorch复现_NMS
  • 备份doris数据到minio
  • Linux中正则表达式等
  • 记一次并发问题 Synchronized 失效
  • 手机平板摄像头如何给电脑用来开视频会议
  • windows docker desktop 更换镜像 加速
  • linux下多机器ssh免密码登录配置
  • 【IDEA使用maven package时,出现依赖不存在以及无法从仓库获取本地依赖的问题】
  • Flink 统计接入的数据量-滚动窗口和状态的使用
  • SpringBoot快速整合canal1.1.5(TCP模式)
  • docker打包container成image,然后将image上传到docker hub
  • 设计模式—创建型模式之原型模式
  • Zygote进程通信为什么用Socket而不是Binder?