sql递归查询

一、postgresql

递归sql

with recursive p as(select t1.* from t_org_test t1 where t1.id=2union allselect t2.*from t_org_test t2 join p on t2.parent_id=p.id)
select id,name,parent_id from p;

 

sql中with xxxx as () 是对一个查询子句做别名,同时数据库会对该子句生成临时表;
with recursive 则是一个递归的查询子句,他会把查询出来的结果再次代入到查询子句中继续查询
p为自定义临时表名,最后一句select后跟的字段必须小于等于t1和t2中字段。
第二句where后面跟的是起始数据,第四句后面可以加where条件来判断终止条件
向上递归把t2.parent_id=p.id改为t2.id=p.parent_id
二、orcle

 

三、mysql

delimiter $$ 
drop function if exists get_child_list$$ 
create function get_child_list(in_id varchar(10)) returns varchar(1000) 
begin declare ids varchar(1000) default ''; declare tempids varchar(1000); set tempids = in_id; while tempids is not null do set ids = CONCAT_WS(',',ids,tempids); select GROUP_CONCAT(id) into tempids from t_org_test where FIND_IN_SET(parent_id,tempids)>0;  end while; return ids; 
end  
$$ 
delimiter ; 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/50469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu卸载python导致无法进入图形页面

首先,进入tty界面,输入用户名和密码。如果忘记了用户名和密码,建议直接重装系统。修改tty的编码格式,输入 $LANG查看tty的编码格式,建议修改编码格式,避免中文或其他信息显示为■■■■■或◆◆◆◆◆ ex…

uCharts 运行微信小程序时,图表放在scroll-view中点击后不能正确获取点击的currentIndex一直为-1

图表在APP和H5中的点击位置是正常的,在微信小程序中会出现点击位置不对且有部分地方点击不到,最终我的解决方法如下。 1.查看包裹图表的元素中有没有元素开启了定位,可以去除定位属性试一试。 2.为微信平台的图表添加 isScrollView="true"属性。 解决方案: 添加 …

产品设计的步骤有哪些? 优漫动游

饭要一口一口吃,一口吃不成个大胖子,事情应该一个接一个地做,越是匆忙和混乱,就会产生越多的问题。今天我们来谈谈产品设计的步骤,以便更好地进行产品设计。 产品设计的步骤有哪些? 1.市场调查 对调…

【快速傅里叶变换(fft)和逆快速傅里叶变换】生成雷达接收到的经过多普勒频移的脉冲雷达信号(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【InsCode】InsCode打造的JavaSE与Linux命令互融的伪Linux文件系统小项目

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Ja…

提升网站排名:SEO优化的实用策略和技巧

导言: 搜索引擎优化(SEO)是提高网站在搜索引擎中排名的关键策略,有助于提升网站的可见性和流量。本文将分享一些实用的SEO优化策略和技巧,帮助您在竞争激烈的网络世界中脱颖而出。 一、关键词研究和优化 关键词选择&…

centos7.9 openssl升级

软件下载 wget https://www.openssl.org/source/openssl-1.1.1v.tar.gz --no-check-certificate依赖安装 yum install -y gcc gcc-c autoconf automake zlib-devel pcre-devel编译安装 tar -zxvf openssl-1.1.1v.tar.gz cd openssl-1.1.1v ./config --prefix/usr/local/openssl…

Ajax+Vue+ElementUI

文章目录 1.Ajax1.1 介绍1.2 Ajax快速入门1.3 案例-用户注册时,检测用户名是否数据库已经存在1.4 Axios1.4.1 Axios快速入门1.4.2 请求别名 1.5 JSON1.5.1 Json的基础语法1.5.2 FastJson的使用5.3.2 Fastjson 使用 2. Vue2.1 介绍2.2 Vue快速入门2.3 Vue常用指令和生…

MySQL 数据备份和数据恢复

目录 一、数据备份 1、概述 2、MySQLdump命令备份 1)备份单个数据库中的所有表 2) 备份数据中某个或多个表 3) 备份所有数据库 4)备份多个库 5) 只备份一个表或多个表结构 二、数据恢复 三、数据备份与恢复应用 一、数据备份 1、概述 数据备…

深度学习基本理论上篇:(MLP/激活函数/softmax/损失函数/梯度/梯度下降/学习率/反向传播)、深度学习面试

深度学习基本理论下篇:(梯度下降/卷积/池化/归一化/AlexNet/归一化/Dropout/卷积核) 深度学习基本理论下篇:(梯度下降/卷积/池化/归一化/AlexNet/归一化/Dropout/卷积核)、深度学习面试_会害羞的杨卓越的博…

解决git上传远程仓库时的大文件提交

在git中超过100M的文件会上传失败,而当一个文件超过50M时会给你警告,如下 warning: File XXXXXX is 51.42 MB; this is larger than GitHubs recommended maximum file size of 50.00 MB 解决这种问题,首先在项目的.git文件夹中找到.gitigno…

日撸java_day63-65

文章目录 Booster代码运行截图 Booster 代码 package machineLearning.adaboosting;import weka.core.Instances;import java.io.FileReader; import java.util.Arrays;/*** ClassName: WeightedInstances* Package: machineLearning.adaboosting* Description:Weighted inst…

STM32移植u8g2玩转oled 用软件iic实现驱动oled

移植u8g2到stm int fputc(int ch,FILE *f) {ITM_SendChar(ch);return (ch); }void delay_us(uint32_t time) {uint32_t i8*time;while(i--); }uint8_t STM32_gpio_and_delay(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) {//printf("%s:msg %d,arg_int …

Vue+Axios搭建二次元动态登录页面(mp4视频格式)

最近想做一个前端登录页面,背景好看的,格式中规中矩的,这么难?我自己创一个吧! 效果图如下: 源码可以参考我的github,复制源码即可用:gym02/loginPage_Vue: 使用VueAxios搭建的动态…

五、Spring MVC 接收请求参数以及数据回显、乱码问题

文章目录 一、Spring MVC 接收请求参数二、Spring MVC 数据回显三、SpringMVC 返回中文乱码问题 一、Spring MVC 接收请求参数 客户端或者前端通过 URL 请求传递过来的参数,在控制器中如何接收? 1、当参数和 Controller 中的方法参数一致时,无…

python pipenv环境部署django项目实践

将代码上传到服务器: 安装pipenv: pip3 install pipenv 安装项目虚拟环境: cd /www/wwwroot/python-django pipenv install 如果提示python版本问题,修改Pipfile文件内的python版本即可。 然后进入虚拟环境安装依赖包&#x…

统计动力学笔记(一)动态系统随机信号在时域中的变换(自留用)

动态系统随机信号在时域中的变换 1. 系统工作质量的表征及若干统计学概念2. 各态遍历性3. 相关函数的性质4. 确定相关函数的实验方法5. 通过线性动态系统的静定随机信号的特性6. 系统输出的均方误差计算 1. 系统工作质量的表征及若干统计学概念 设一个动态系统的输入为 u ( t …

appium2.0+ 单点触控和多点触控新的解决方案

在 appium2.0 之前,在移动端设备上的触屏操作,单手指触屏和多手指触屏分别是由 TouchAction 类,Multiaction 类实现的。 在 appium2.0 之后,这 2 个方法将会被舍弃。 "[Deprecated] TouchAction action is deprecated. Ple…

dart Offstag

作为子组件,不输出,不占空间,不参与点击测试 Offstage children are still active: they can receive focus and have keyboard input directed to them. bool offstage属性决定显示与否。 import package:flutter/material.dart;/// Flut…

使用swoole实现实时消息推送给客户端

一. 测试服务端 //测试服务端public function testServer(){$server new Server(192.168.0.144, 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);$server->on(request, function ($request, $response) {$response->header(Content-Type, text/plain);$response->end("He…