广告
返回顶部
首页 > 资讯 > 数据库 >mysql查询上下级机构的方法实例
  • 344
分享到

mysql查询上下级机构的方法实例

2024-04-02 19:04:59 344人浏览 安东尼
摘要

目录前言思路:(1)准备测试数据表(2)查询指定机构的所有下级机构(包括自身)(3)查询指定机构的所有上级机构(包括自身)总结前言 查询上下级机构,这个功能可能会在日常工作中遇到,如

前言

查询上下级机构,这个功能可能会在日常工作中遇到,如果使用的oracle数据库,那就很简单,只需要使用oracle提供的层级查询即可实现。如果使用的Mysql数据库,那么就需要自己实现这个功能。下面就介绍mysql实现上下级机构查询。

思路:

  • 自定义mysql方法
  • 利用mysql中的【FIND_IN_SET】【group_concat】两个方法

(1)准备测试数据表

CREATE TABLE `org_test` (
  `org_no` varchar(32) NOT NULL COMMENT '机构编号',
  `org_name` varchar(200) NOT NULL COMMENT '机构名称',
  `p_org_no` varchar(32) DEFAULT NULL COMMENT '上级机构编号',
  PRIMARY KEY (`org_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

测试数据

INSERT INTO `org_test` VALUES ('1001', '福建省', null);
INSERT INTO `org_test` VALUES ('100101', '厦门市', '1001');
INSERT INTO `org_test` VALUES ('10010101', '思明区', '100101');
INSERT INTO `org_test` VALUES ('10010102', '湖里区', '100101');
INSERT INTO `org_test` VALUES ('10010103', '同安区', '100101');
INSERT INTO `org_test` VALUES ('100102', '福州市', '1001');

(2)查询指定机构的所有下级机构(包括自身)

delimiter $$
CREATE FUNCTioN getOrGChild (orgNo varchar(32)) RETURNS varchar(1000) CHARSET utf8
BEGIN
	-- 定义临时变量
	DECLARE tmpOrg varchar(1000) DEFAULT '';
	-- 循环查询,orgNo不为空,则循环
	WHILE orgNo IS NOT NULL DO
		-- 拼接所有查询结果
		IF tmpOrg = '' THEN
			SET tmpOrg = CONCAT(tmpOrg, orgNo);
		ELSE
			SET tmpOrg = CONCAT(tmpOrg, ',', orgNo);
		END IF;
		-- 查询数据
		SELECT group_concat(org_no) INTO orgNo FROM org_test WHERE FIND_IN_SET(p_org_no, orgNo) > 0;
	END WHILE;
	
	-- 返回结果
	RETURN tmpOrg;
END $$

测试结果:

(3)查询指定机构的所有上级机构(包括自身)

delimiter $$
CREATE FUNCTION getOrgParent (orgNo varchar(32)) RETURNS varchar(1000) CHARSET utf8
BEGIN
	-- 定义临时变量
	DECLARE tmpOrg varchar(1000) DEFAULT '';
	-- 循环查询,orgNo不为空,则循环
	WHILE orgNo IS NOT NULL DO
		-- 拼接所有查询结果
		IF tmpOrg = '' THEN
			SET tmpOrg = CONCAT(tmpOrg, orgNo);
		ELSE
			SET tmpOrg = CONCAT(tmpOrg, ',', orgNo);
		END IF;
		-- 查询数据
		SELECT group_concat(p_org_no) INTO orgNo FROM org_test WHERE FIND_IN_SET(org_no, orgNo) > 0;
	END WHILE;
	
	-- 返回结果
	RETURN tmpOrg;
END $$

测试结果:

总结

到此这篇关于mysql查询上下级机构的文章就介绍到这了,更多相关mysql查询上下级机构内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: mysql查询上下级机构的方法实例

本文链接: https://www.lsjlt.com/news/146694.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql查询上下级机构的方法实例
    目录前言思路:(1)准备测试数据表(2)查询指定机构的所有下级机构(包括自身)(3)查询指定机构的所有上级机构(包括自身)总结前言 查询上下级机构,这个功能可能会在日常工作中遇到,如...
    99+
    2022-11-13
  • mysql怎么查询上下级机构
    这篇文章主要讲解了“mysql怎么查询上下级机构”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql怎么查询上下级机构”吧!思路:自定义mysql方法利用mysql中的【FIND_IN_...
    99+
    2023-06-30
  • mysql查询数据库下表结构的方法
    mysql查询数据库下表结构的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!方法:1、使用DESCRIBE命令以表格的...
    99+
    2022-10-18
  • mysql构造慢查询的方法
    这篇文章将为大家详细讲解有关mysql构造慢查询的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql构造慢查询的方法:1、修改配置文件,在【my.ini】增加相...
    99+
    2022-10-18
  • MySQL开启慢查询方法及实例
    一、简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。 二、参数说明 slow_query_log 慢查询开启状态 slow_query...
    99+
    2022-05-21
    MySQL 慢查询
  • MySql利用父id递归向下查询子节点的方法实例
    不用写存储过程,不用建数据库函数,一段sql就可以实现 不用写存储过程,不用建数据库函数,一段sql就可以实现 不用写存储过程,不用建数据库函数,一段sql就可以实现 SELEC&#...
    99+
    2022-11-13
  • MySQL嵌套查询实现子查询的方法
    目录一个查询语句嵌套在另一个查询语句内部的查询1.带ANY(SOME)关键字的子查询2.带ALL关键字的子查询3.带EXISTS关键字的子查询4.带IN关键字的子查询5.带比较运算符...
    99+
    2022-11-13
  • mysql条件查询and or使用方法及优先级实例分析
    本文实例讲述了mysql条件查询and or使用方法及优先级。分享给大家供大家参考,具体如下: mysql and与or介绍 AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。 使用OR关...
    99+
    2022-05-15
    mysql 条件查询 and or 优先级
  • mysql的多表查询实现方法
    本篇文章给大家分享的是有关mysql的多表查询实现方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。多表查询有3种方式,分别是:1、传统方式,...
    99+
    2022-10-18
  • mysql实现递归查询的方法
    小编给大家分享一下mysql实现递归查询的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql实现递归查询的方法:首先创建表,并初始化数据;然后向下递归,利用【find_in_set(...
    99+
    2022-10-18
  • MySQL实现分页查询的方法
    这篇文章主要介绍MySQL实现分页查询的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL中实现分页查询:在数据量较小的情况下可使用limit查询来实现分页查询,在数据量大...
    99+
    2022-10-18
  • MySQL查询树形结构数据的两种方法
    目录1. 递归查询2. 闭包表对于mysql查询树形结构,可以使用递归查询或者闭包表来实现。以下是两种常用的方法: 1. 递归查询 使用递归查询可以遍历树形结构,获取父节点和子节点的关系。假设有一个名为 your_tab...
    99+
    2023-11-11
    MySQL查询树形数据 MySQL查询树形结构 MySQL树形结构查询
  • MySQL中进行跨库查询的方法示例
    前言 在MySQL中跨库查询主要分为两种情况,一种是同服务的跨库查询;另一种是不同服务的跨库查询;它们进行跨库查询是不同的,下面就具体介绍这两种跨库查询。 一、同服务的跨库查询 同服务的跨库查询只需要在关联查询的时候...
    99+
    2022-05-28
    mysql 跨库关联查询 mysql跨实例查询 mysql跨库查询性能
  • mysql数据库子查询的实例用法
    本篇内容介绍了“mysql数据库子查询的实例用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!#查询和Zl...
    99+
    2022-10-18
  • mysql的树形结构存储及查询实例分析
    这篇文章主要介绍“mysql的树形结构存储及查询实例分析”,在日常操作中,相信很多人在mysql的树形结构存储及查询实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql的树形结构存储及查询实例分析...
    99+
    2023-06-29
  • mysql递归查询所有子级的方法是什么
    在MySQL中,可以使用递归查询(Recursive Query)来查询所有子级。MySQL并不直接支持递归查询,但可以通过使用`W...
    99+
    2023-09-11
    mysql
  • mysql instr条件查询的实现方法
    这篇文章主要介绍“mysql instr条件查询的实现方法”,在日常操作中,相信很多人在mysql instr条件查询的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql instr条件查询的实...
    99+
    2023-06-20
  • MySQL递归查询的3种实现方式实例
    目录1.建表脚本1.1.建表2.递归查询三种实现方式2.1. 方式一 创建自定义函数实现递归查询2.1.1. 查询子节点的函数 查询时  包含自身 2.1.2. ...
    99+
    2022-11-13
  • MyBatis-Plus实现连表查询的方法实例
    目录使用方法安装使用核心类MPJLambdaWrapper和MPJQueryWrapperMPJLambdaWrapper用法MPJQueryWrapper总结mybatis-plu...
    99+
    2022-11-13
  • MySQL慢查询日志的启用方法并实现Linux上分析
    下面讲讲关于MySQL慢查询日志的启用方法并实现Linux上分析,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL慢查询日志的启用方法并实现Linux上分析这篇文章你一定...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作