欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

不用寫存儲(chǔ)過程,不用建數(shù)據(jù)庫函數(shù),一段sql就可以實(shí)現(xiàn)

不用寫存儲(chǔ)過程,不用建數(shù)據(jù)庫函數(shù),一段sql就可以實(shí)現(xiàn)

不用寫存儲(chǔ)過程,不用建數(shù)據(jù)庫函數(shù),一段sql就可以實(shí)現(xiàn)

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;

測試數(shù)據(jù)展示

查詢 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ū)往下查詢

總結(jié) 

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

相關(guān)文章

  • 詳解mysql中if函數(shù)的正確使用姿勢

    詳解mysql中if函數(shù)的正確使用姿勢

    這篇文章主要介紹了詳解mysql中if函數(shù)的正確使用姿勢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • MySQL找出未提交事務(wù)的SQL實(shí)例淺析

    MySQL找出未提交事務(wù)的SQL實(shí)例淺析

    這篇文章主要給大家介紹了關(guān)于MySQL找出未提交事務(wù)SQL的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • MySQL日志管理詳解

    MySQL日志管理詳解

    這篇文章主要介紹了MySQL日志管理詳解,本文講解了日志種類、日志功能、MySQL中日志相關(guān)常用的服務(wù)器變量說明等內(nèi)容,需要的朋友可以參考下
    2015-07-07
  • 通過實(shí)例學(xué)習(xí)MySQL分區(qū)表原理及常用操作

    通過實(shí)例學(xué)習(xí)MySQL分區(qū)表原理及常用操作

    我們試著想一想, 在生產(chǎn)環(huán)境中什么最重要? 我感覺在生產(chǎn)環(huán)境中應(yīng)該沒有什么比數(shù)據(jù)跟更為重要. 那么我們該如何保證數(shù)據(jù)不丟失、或者丟失后可以快速恢復(fù)呢?只要看完這篇大家應(yīng)該就能對MySQL中數(shù)據(jù)備份有一定了解
    2019-05-05
  • MySQL使用LOAD_FILE()函數(shù)方法總結(jié)

    MySQL使用LOAD_FILE()函數(shù)方法總結(jié)

    在本篇文章里小編給大家分享了關(guān)于MySQL使用LOAD_FILE()函數(shù)方法和相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • MySQL 5.7新特性介紹

    MySQL 5.7新特性介紹

    這篇文章主要為大家詳細(xì)介紹了MySQL 5.7新特性,了解一下MySQL 5.7的部分新功能,需要的朋友可以參考下
    2016-06-06
  • Mysql中substring_index函數(shù)實(shí)現(xiàn)字符分割一行變多行

    Mysql中substring_index函數(shù)實(shí)現(xiàn)字符分割一行變多行

    在MySQL中,字符串分割是一個(gè)常見的操作,本文主要介紹了Mysql中substring_index函數(shù)實(shí)現(xiàn)字符分割一行變多行,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • mysql LOAD語句批量錄入數(shù)據(jù)

    mysql LOAD語句批量錄入數(shù)據(jù)

    本章的前面討論如何使用SQL向一個(gè)表中插入數(shù)據(jù)。但是,如果你需要向一個(gè)表中添加許多條記錄,使用SQL語句輸入數(shù)據(jù)是很不方便的。
    2010-03-03
  • MySQL學(xué)習(xí)之?dāng)?shù)據(jù)庫備份詳解

    MySQL學(xué)習(xí)之?dāng)?shù)據(jù)庫備份詳解

    本篇文章主要介紹了MySQL中的 數(shù)據(jù)庫備份詳解,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-09-09
  • mysql如何能有效防止刪庫跑路

    mysql如何能有效防止刪庫跑路

    本文主要介紹了mysql如何能有效防止刪庫跑路,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評(píng)論