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

MySql利用父id遞歸向下查詢子節(jié)點的方法實例

 更新時間:2022年03月24日 11:44:54   作者:堯上有農  
項目中遇到一個需求,要求查處菜單節(jié)點的所有節(jié)點,在網上查了一下,大多數的方法用到了存儲過程,由于線上環(huán)境不能隨便添加存儲過程,所以自己寫一個,這篇文章主要給大家介紹了關于MySql利用父id遞歸向下查詢子節(jié)點的相關資料,需要的朋友可以參考下

不用寫存儲過程,不用建數據庫函數,一段sql就可以實現

不用寫存儲過程,不用建數據庫函數,一段sql就可以實現

不用寫存儲過程,不用建數據庫函數,一段sql就可以實現

SELECT
	ID.LEVEL,
	DATA.* 
FROM
	(
	SELECT
		@ids AS _ids,
		( SELECT @ids := GROUP_CONCAT( region_id ) FROM region WHERE FIND_IN_SET(parent_id, @ids ) ) AS cids,
		@l := @l + 1 AS LEVEL 
	FROM
		region,
		( SELECT @ids := 3, @l := 0 ) b 
	WHERE
		@ids IS NOT NULL 
	) ID,
	region DATA 
WHERE
	FIND_IN_SET( DATA.region_id, ID._ids ) 
ORDER BY
	LEVEL

測試

--創(chuàng)建測試環(huán)境
create table t_test(
	id int PRIMARY key,
	parent_id int,
	name varchar(200)
)

insert t_test VALUES(1,null,"中國");

insert t_test VALUES(2,1,"華北");

insert t_test VALUES(3,2,"山西省");
insert t_test VALUES(4,2,"北京");

insert t_test VALUES(5,3,"臨汾市");
insert t_test VALUES(6,4,"北京市");


insert t_test VALUES(7,5,"堯都區(qū)");
insert t_test VALUES(8,6,"朝陽區(qū)");

insert t_test VALUES(9,7,"解放西路");
insert t_test VALUES(10,8,"朝陽北路");


SELECT * FROM t_test;

測試數據展示

查詢 id=1,查詢中國下邊有哪些地方

SELECT
	ID.LEVEL,
	DATA.* 
FROM
	(
	SELECT
		@ids AS _ids,
		( SELECT @ids := GROUP_CONCAT( id ) FROM t_test WHERE FIND_IN_SET(parent_id, @ids ) ) AS cids,
		@l := @l + 1 AS LEVEL 
	FROM
		t_test,
		( SELECT @ids := 1, @l := 0 ) b 
	WHERE
		@ids IS NOT NULL 
	) ID,
	t_test DATA 
WHERE
	FIND_IN_SET( DATA.id, ID._ids ) 
ORDER BY
	LEVEL

id=3,查詢山西下邊有哪些地方

SELECT
	ID.LEVEL,
	DATA.* 
FROM
	(
	SELECT
		@ids AS _ids,
		( SELECT @ids := GROUP_CONCAT( id ) FROM t_test WHERE FIND_IN_SET(parent_id, @ids ) ) AS cids,
		@l := @l + 1 AS LEVEL 
	FROM
		t_test,
		( SELECT @ids := 3, @l := 0 ) b 
	WHERE
		@ids IS NOT NULL 
	) ID,
	t_test DATA 
WHERE
	FIND_IN_SET( DATA.id, ID._ids ) 
ORDER BY
	LEVEL

id=4,查詢北京下邊有哪些地方

最后再從 id=2 華北地區(qū)往下查詢

總結 

到此這篇關于MySql利用父id遞歸向下查詢子節(jié)點的文章就介紹到這了,更多相關MySql遞歸查詢子節(jié)點內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL學習筆記之數據的增、刪、改實現方法

    MySQL學習筆記之數據的增、刪、改實現方法

    這篇文章主要介紹了MySQL學習筆記之數據的增、刪、改實現方法,簡單介紹了mysql實現數據的增、刪、改相關語法與使用技巧,需要的朋友可以參考下
    2016-09-09
  • 深入淺出講解MySQL的并行復制

    深入淺出講解MySQL的并行復制

    這篇文章主要給大家介紹了關于MySQL并行復制的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或使用mysql具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08
  • mysql ON DUPLICATE KEY UPDATE語句示例

    mysql ON DUPLICATE KEY UPDATE語句示例

    本文介紹一下關于mysql中INSERT INTO… ON DUPLICATE KEY UPDATE用法
    2013-11-11
  • 帶你快速了解SQL窗口函數

    帶你快速了解SQL窗口函數

    窗口函數,也叫OLAP函數(Online Anallytical Processing,聯機分析處理),可以對數據庫數據進行實時分析處理,下面這篇文章主要給大家介紹了關于SQL窗口函數的相關資料,需要的朋友可以參考下
    2022-03-03
  • 使用MYSQL TIMESTAMP字段進行時間加減運算問題

    使用MYSQL TIMESTAMP字段進行時間加減運算問題

    這篇文章主要介紹了使用MYSQL TIMESTAMP字段進行時間加減運算問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • MySQL插入數據時插入無效列的解決方法

    MySQL插入數據時插入無效列的解決方法

    MySQL插入數據時插入無效的列,解決方法是在插入時,給字符串類型的字段值加上雙引號
    2014-07-07
  • 詳解MySQL中的NULL值

    詳解MySQL中的NULL值

    這篇文章主要介紹了MySQL中的NULL值的相關知識,是MySQL入門學習中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • mysql 正確清理binlog日志的兩種方法

    mysql 正確清理binlog日志的兩種方法

    這篇文章主要介紹了mysql 正確清理binlog日志的相關資料,需要的朋友可以參考下
    2017-07-07
  • 解決MySQL Sending data導致查詢很慢問題的方法與思路

    解決MySQL Sending data導致查詢很慢問題的方法與思路

    這篇文章主要介紹了解決MySQL Sending data導致查詢很慢問題的方法與思路,感興趣的小伙伴們可以參考一下
    2016-04-04
  • MySQL單表查詢實例詳解

    MySQL單表查詢實例詳解

    這篇文章主要給大家介紹了關于MySQL單表查詢的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09

最新評論

徐州市| 中牟县| 庆城县| 饶阳县| 阿克陶县| 达孜县| 鸡西市| 巧家县| 绍兴市| 许昌县| 平阴县| 定州市| 信宜市| 勐海县| 齐齐哈尔市| 汝阳县| 黑水县| 虞城县| 西盟| 马尔康县| 岳阳市| 马山县| 麻江县| 乐平市| 晋州市| 温州市| 清流县| 沙河市| 黎平县| 屏边| 太保市| 泰顺县| 张北县| 文水县| 新竹市| 屏边| 兴海县| 奉化市| 辰溪县| 兖州市| 芜湖县|