最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql查詢上下級(jí)機(jī)構(gòu)的方法實(shí)例

 更新時(shí)間:2022年04月20日 15:42:49   作者:朱友斌  
大家應(yīng)該都知道表里有上下級(jí)機(jī)構(gòu)的,下面這篇文章主要給大家介紹了關(guān)于mysql查詢上下級(jí)機(jī)構(gòu)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

查詢上下級(jí)機(jī)構(gòu),這個(gè)功能可能會(huì)在日常工作中遇到,如果使用的oracle數(shù)據(jù)庫,那就很簡(jiǎn)單,只需要使用oracle提供的層級(jí)查詢即可實(shí)現(xiàn)。如果使用的mysql數(shù)據(jù)庫,那么就需要自己實(shí)現(xiàn)這個(gè)功能。下面就介紹mysql實(shí)現(xiàn)上下級(jí)機(jī)構(gòu)查詢。

思路:

  • 自定義mysql方法
  • 利用mysql中的【FIND_IN_SET】【group_concat】?jī)蓚€(gè)方法

(1)準(zhǔn)備測(cè)試數(shù)據(jù)表

CREATE TABLE `org_test` (
  `org_no` varchar(32) NOT NULL COMMENT '機(jī)構(gòu)編號(hào)',
  `org_name` varchar(200) NOT NULL COMMENT '機(jī)構(gòu)名稱',
  `p_org_no` varchar(32) DEFAULT NULL COMMENT '上級(jí)機(jī)構(gòu)編號(hào)',
  PRIMARY KEY (`org_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

測(cè)試數(shù)據(jù)

INSERT INTO `org_test` VALUES ('1001', '福建省', null);
INSERT INTO `org_test` VALUES ('100101', '廈門市', '1001');
INSERT INTO `org_test` VALUES ('10010101', '思明區(qū)', '100101');
INSERT INTO `org_test` VALUES ('10010102', '湖里區(qū)', '100101');
INSERT INTO `org_test` VALUES ('10010103', '同安區(qū)', '100101');
INSERT INTO `org_test` VALUES ('100102', '福州市', '1001');

(2)查詢指定機(jī)構(gòu)的所有下級(jí)機(jī)構(gòu)(包括自身)

delimiter $$
CREATE FUNCTION getOrgChild (orgNo varchar(32)) RETURNS varchar(1000) CHARSET utf8
BEGIN
	-- 定義臨時(shí)變量
	DECLARE tmpOrg varchar(1000) DEFAULT '';
	-- 循環(huán)查詢,orgNo不為空,則循環(huán)
	WHILE orgNo IS NOT NULL DO
		-- 拼接所有查詢結(jié)果
		IF tmpOrg = '' THEN
			SET tmpOrg = CONCAT(tmpOrg, orgNo);
		ELSE
			SET tmpOrg = CONCAT(tmpOrg, ',', orgNo);
		END IF;
		-- 查詢數(shù)據(jù)
		SELECT group_concat(org_no) INTO orgNo FROM org_test WHERE FIND_IN_SET(p_org_no, orgNo) > 0;
	END WHILE;
	
	-- 返回結(jié)果
	RETURN tmpOrg;
END $$

測(cè)試結(jié)果:

(3)查詢指定機(jī)構(gòu)的所有上級(jí)機(jī)構(gòu)(包括自身)

delimiter $$
CREATE FUNCTION getOrgParent (orgNo varchar(32)) RETURNS varchar(1000) CHARSET utf8
BEGIN
	-- 定義臨時(shí)變量
	DECLARE tmpOrg varchar(1000) DEFAULT '';
	-- 循環(huán)查詢,orgNo不為空,則循環(huán)
	WHILE orgNo IS NOT NULL DO
		-- 拼接所有查詢結(jié)果
		IF tmpOrg = '' THEN
			SET tmpOrg = CONCAT(tmpOrg, orgNo);
		ELSE
			SET tmpOrg = CONCAT(tmpOrg, ',', orgNo);
		END IF;
		-- 查詢數(shù)據(jù)
		SELECT group_concat(p_org_no) INTO orgNo FROM org_test WHERE FIND_IN_SET(org_no, orgNo) > 0;
	END WHILE;
	
	-- 返回結(jié)果
	RETURN tmpOrg;
END $$

測(cè)試結(jié)果:

總結(jié)

到此這篇關(guān)于mysql查詢上下級(jí)機(jī)構(gòu)的文章就介紹到這了,更多相關(guān)mysql查詢上下級(jí)機(jī)構(gòu)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • mysqlsla慢查詢分析工具使用筆記

    mysqlsla慢查詢分析工具使用筆記

    mysqlsla是一款幫助語句分析、過濾、和排序的功能,能夠處理MySQL慢查詢?nèi)罩?、二進(jìn)制日志等。整體來說, 功能非常強(qiáng)大. 能制作SQL查詢數(shù)據(jù)報(bào)表,分析包括執(zhí)行頻率, 數(shù)據(jù)量, 查詢消耗等
    2014-05-05
  • MySQL安裝失敗的原因及解決步驟

    MySQL安裝失敗的原因及解決步驟

    因很多同學(xué)安裝mysql總是出問題,所以下面這篇文章主要給大家介紹了關(guān)于MySQL安裝失敗的原因及解決步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • MySQL分區(qū)表的局限和限制詳解

    MySQL分區(qū)表的局限和限制詳解

    本文對(duì)Mysql分區(qū)表的局限性做了一些總結(jié),因?yàn)閭€(gè)人能力以及測(cè)試環(huán)境的 原因,有可能有錯(cuò)誤的地方,還請(qǐng)大家看到能及時(shí)指出,當(dāng)然有興趣的朋友可以去官方網(wǎng)站查閱。
    2017-03-03
  • MYSQL?Binlog恢復(fù)誤刪數(shù)據(jù)庫詳解

    MYSQL?Binlog恢復(fù)誤刪數(shù)據(jù)庫詳解

    MySQL一旦誤刪數(shù)據(jù)庫之后恢復(fù)數(shù)據(jù)很麻煩,這里記錄一下艱辛的恢復(fù)過程,這篇文章主要給大家介紹了關(guān)于如何利用MySQL的binlog恢復(fù)誤刪數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • MySQL線程處于Opening tables的問題解決方法

    MySQL線程處于Opening tables的問題解決方法

    在本篇文章里小編給大家分享了關(guān)于MySQL線程處于Opening tables的問題解決方法,有興趣的朋友們學(xué)習(xí)下。
    2019-01-01
  • MySQL 不用存儲(chǔ)過程循環(huán)插入數(shù)據(jù)的方法

    MySQL 不用存儲(chǔ)過程循環(huán)插入數(shù)據(jù)的方法

    在MySQL中,使用INSERT INTO VALUES語句可以一次性插入多行數(shù)據(jù),提高插入效率,還可通過Python的pymysql庫生成和執(zhí)行插入語句,這不僅減少了操作時(shí)間,還提高了代碼的簡(jiǎn)潔性和執(zhí)行效率
    2024-09-09
  • MySQL Hash索引和B-Tree索引的區(qū)別

    MySQL Hash索引和B-Tree索引的區(qū)別

    MySQL Hash索引和B-Tree索引的區(qū)別究竟在哪里呢?相信很多人都有這樣的疑問,下文對(duì)兩者的區(qū)別進(jìn)行了詳細(xì)的分析,需要的朋友可以參考下
    2014-03-03
  • MySQL中聚合函數(shù)count的使用和性能優(yōu)化技巧

    MySQL中聚合函數(shù)count的使用和性能優(yōu)化技巧

    這篇文章主要介紹了Windows 10,MySQL版本是5.7.12-log環(huán)境下mysql中聚合函數(shù)count的使用和性能優(yōu)化,需要的朋友可以參考下
    2018-06-06
  • mysql中查詢字段為null的數(shù)據(jù)navicat問題

    mysql中查詢字段為null的數(shù)據(jù)navicat問題

    這篇文章主要介紹了mysql中查詢字段為null的數(shù)據(jù)navicat問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • MYSQL常見出錯(cuò)代碼對(duì)照

    MYSQL常見出錯(cuò)代碼對(duì)照

    MYSQL常見出錯(cuò)代碼對(duì)照...
    2007-07-07

最新評(píng)論

涞水县| 甘泉县| 伊宁市| 巴中市| 清水河县| 通城县| 昌吉市| 商城县| 西林县| 南漳县| 庆元县| 苏州市| 灯塔市| 房产| 台南县| 贵南县| 永宁县| 洛浦县| 崇州市| 桐柏县| 通化县| 余庆县| 昌乐县| 新余市| 伊金霍洛旗| 兴仁县| 新邵县| 宣化县| 平南县| 互助| 平昌县| 涞源县| 蓝山县| 山丹县| 安庆市| 新营市| 当涂县| 大悟县| 牟定县| 利辛县| 弥渡县|