MySQL递归查询

2023-11-05

在平常开发过程中,递归查询随处可见。话不多说,本人在项目中遇到的是编码和父级编码,需要逐渐查询。

1、表结构

code和parent_id

2、SQL

SELECT id,
(SELECT REPLACE(GROUP_CONCAT(code),',','/') FROM ddm_file_directory
where INSTR(CONCAT(paths,',',result.id,','),concat(',',id,',')) ) as
code
FROM (
SELECT id,parent_id,code,
	@le:= IF (parent_id = 0 ,0,IF( LOCATE( CONCAT('|',parent_id,':'),@pathlevel) > 0 ,
		SUBSTRING_INDEX(SUBSTRING_INDEX(@pathlevel,CONCAT('|',parent_id,':'),-1),'|',1) +1 ,@le+1) ) levels
  , @pathlevel:= CONCAT(@pathlevel,'|',id,':', @le ,'|') pathlevel
  , @pathnodes:= IF( parent_id =0,'',
		CONCAT_WS(',', IF( LOCATE( CONCAT('|',parent_id,':'),@pathall) > 0 ,
		SUBSTRING_INDEX( SUBSTRING_INDEX(@pathall,CONCAT('|',parent_id,':'),-1),'|',1)
		,@pathnodes ) ,parent_id ) )paths
	,@pathall:=CONCAT(@pathall,'|',id,':', @pathnodes ,'|') pathall
    FROM ddm_file_directory,
    (SELECT @le:=0,@pathlevel:='', @pathall:='',@pathnodes:='') vv
) result

3、查询结果

result

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL递归查询 的相关文章

随机推荐

  • Qt安装包+安装配置说明 (强烈推荐,小白专用)

    链接 https pan baidu com s 1zrhLUP sjWgCQdrFacDQCQ 提取码 uie5内附赠详细安装说明 可以 信我获取
  • es7合并数组相关 报错Uncaught (in promise) TypeError: Invalid attempt to spread non-iterable instance...

    方法一 let o1 a 1 b 2 c 3 let o2 o1 d 4 o2 a 1 b 2 c 3 d 4 let arr1 0 1 2 let arr2 arr1 3 arr2 0 1 2 3 方法二 let o1 a 1 b 2 c
  • 科普:java与C++的区别

    Java与C 是两种广泛使用的编程语言 它们在某些方面存在不同之处 本文将详细介绍Java与C 的区别 一 C 与Java的历史 C 语言是由Bjarne Stroustrup在20世纪80年代初期开发的一种面向对象编程语言 它是C语言的扩
  • 服务器CPU占用率高,如何排查?

    1 定位进程 登录服务器 执行top命令 查看CPU占用情况 top 2 定位线程 如果进程23456占用率高 top Hp23456 进行定位线程 3 定位代码 通过top命令 我们目前已经定位到导致CPU使用率较高的具体线程 比如线程4
  • 电脑如何进入bios模式_电脑BIOS是什么?到底有什么用?如何进入电脑BIOS

    BIOS是英文 Basic Input Output System 的缩略语 直译过来后中文名称就是 基本输入输出系统 其实 它是一组固化到计算机内主板上一个ROM芯片上的程序 它保存着计算机最重要的基本输入输出的程序 系统设置信息 开机后
  • Python3 + Pymysql + mysql 连接方法

    准备材料 1 host地址 127 0 0 1 2 端口号 3306 3 用户名 root 4 密码 5 数据库名 information persons 6 python3 的pymysql库 正式开始 查询 1 首先导入pymysql包
  • C99和C89

    这是c0conut同学的一份作业 也可以理解为总结 为了保留这份作业 写了博客 我尽量使自己写得简单好懂有趣 C99与C89的亲子关系 就如DOM结构一般 C99与C89之间也充满温情 老父亲C89顾名思义出生于89年 也被称为ANSI C
  • validator 重写方法报错

    javax validation ConstraintDeclarationException HV000151 A method overriding another method must not redefine the parame
  • windows常用命令大全

    作者介绍 作者 小刘在C站 每天分享课堂笔记 一起努力 共赴美好人生 夕阳下 是最美的 绽放 目录 运行框命令 cmd中 Windows运行中 快捷键 运行框命令 shutdown s t 后家秒数 计划关机任务 migwiz Window
  • x-oss-process_OSS中的同理心-重要

    x oss process 我不花很多时间在开放源码项目的整个工作日 和许多晚上 上 我对OSS的使用形成了一种或两种意见 特别是在为项目做贡献时 作为一个使用Github之类的工具的社区 我们已经走了很长一段路 这使得在野外发布OSS项目
  • 什么是区块链?

    什么是区块链 今天给大家讲解我们区块链的第一课 我们要学习区块链 首先我们必须得了解什么是区块链 只有理解了区块链的概念 我们才能入门区块链 接下来 我会从浅入深的带着大家去理解区块链的含义 首先 我们从字面上来理解 区块链 包含着两层含义
  • kvm虚拟化技术

    前言 kvm是一种虚拟化技术 使用 概念 kvm是linux内核的模块 它需要CPU支持 采用硬件辅助虚拟化技术Intel VT AMD V 内存的相关技术如Intel的EPT和AMD的RVI 是底层虚拟化内核模块 检查cpu是否支持虚拟化
  • 大学c语言程序设计题库选择题,黑龙江大学C语言程序设计试题库程序单选.doc

    单选题 46 若输入ab 程序运行结果为 main static char a 2 scanf s a printf c c a 1 a 2 C A a b B a C b D 程序出错 47 若有说明 int a 3 4 0 则下面正确的
  • Hadoop HA集群两个NameNode都是standby或者主NameNode是standby,从NameNode是active的情况集锦

    文章目录 背景 架构 HDFS HA配置 错误原因 解决方案 方案一 方案二 方案三 首先查看自己各参数文件是否配置出错 后记 补充 failover transitionToActive 常用端口号及配置文件 常用端口号 hadoop3
  • 服务器上传图片不显示,网站后台上传图片失败或不显示的原因

    这四年多以来 比尔云做过近百个网站 发现好多网站后台上传图片都会出现一些错误 也不管这个程序是ASP的还是PHP的 对于为什么网站后台上传图片失败 今天比尔云结合自己的经验给大家总结一下 大家以后在搞网站时遇到相应的问题就好解决了 第一件事
  • Fine-tuning Large Enterprise Language Models via Ontological Reasoning

    本文是LLM系列文章 针对 Fine tuning Large Enterprise Language Models via Ontological Reasoning 的翻译 基于本体论推理的大型企业语言模型微调 摘要 1 引言 2 微调
  • 十大图像数据标注工具大合集

    给大家推荐十大标注工具 1 常见的标注方法 人工数据标注 的好处是标注结果比较可靠 自动数据标注 一般都需要二次复核 避免程序错误 外包数据标注 很多时候会面临数据泄密与流失风险 2 人工标注工具 可以分为客户端与WEB端标注工具 推荐使用
  • CUDA 7.5 安装及配置(WIN7 64 英伟达G卡 VS2013)

    第一步 下载cuda 7 5最新版本 https developer nvidia com cuda downloads 第二步 运行安装程序 安装过程中选择自定义 第三步 安装完毕 可以看到系统中多了CUDA PATH和CUDA PATH
  • Python算法--求1-100之间所有的偶数和奇数

    i 1 sum1 0 sum2 0 while i lt 100 if i 2 0 sum1 i else sum2 i i 1 print 1 100之间偶数和为 d sum1 print 1 100之间奇数和为 d sum2
  • MySQL递归查询

    在平常开发过程中 递归查询随处可见 话不多说 本人在项目中遇到的是编码和父级编码 需要逐渐查询 1 表结构 2 SQL SELECT id SELECT REPLACE GROUP CONCAT code FROM ddm file dir