MySql利用父id遞歸向下查詢子節(jié)點(diǎn)的方法實(shí)例
不用寫(xiě)存儲(chǔ)過(guò)程,不用建數(shù)據(jù)庫(kù)函數(shù),一段sql就可以實(shí)現(xiàn)
不用寫(xiě)存儲(chǔ)過(guò)程,不用建數(shù)據(jù)庫(kù)函數(shù),一段sql就可以實(shí)現(xiàn)
不用寫(xiě)存儲(chǔ)過(guò)程,不用建數(shù)據(jù)庫(kù)函數(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
測(cè)試
--創(chuàng)建測(cè)試環(huán)境 create table t_test( id int PRIMARY key, parent_id int, name varchar(200) ) insert t_test VALUES(1,null,"中國(guó)"); 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,"朝陽(yáng)區(qū)"); insert t_test VALUES(9,7,"解放西路"); insert t_test VALUES(10,8,"朝陽(yáng)北路"); SELECT * FROM t_test;
測(cè)試數(shù)據(jù)展示
查詢 id=1,查詢中國(guó)下邊有哪些地方
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,查詢北京下邊有哪些地方
最后再?gòu)?id=2 華北地區(qū)往下查詢
總結(jié)
到此這篇關(guān)于MySql利用父id遞歸向下查詢子節(jié)點(diǎn)的文章就介紹到這了,更多相關(guān)MySql遞歸查詢子節(jié)點(diǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過(guò)實(shí)例學(xué)習(xí)MySQL分區(qū)表原理及常用操作
我們?cè)囍胍幌? 在生產(chǎn)環(huán)境中什么最重要? 我感覺(jué)在生產(chǎn)環(huán)境中應(yīng)該沒(méi)有什么比數(shù)據(jù)跟更為重要. 那么我們?cè)撊绾伪WC數(shù)據(jù)不丟失、或者丟失后可以快速恢復(fù)呢?只要看完這篇大家應(yīng)該就能對(duì)MySQL中數(shù)據(jù)備份有一定了解2019-05-05MySQL使用LOAD_FILE()函數(shù)方法總結(jié)
在本篇文章里小編給大家分享了關(guān)于MySQL使用LOAD_FILE()函數(shù)方法和相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。2019-03-03Mysql中substring_index函數(shù)實(shí)現(xiàn)字符分割一行變多行
在MySQL中,字符串分割是一個(gè)常見(jiàn)的操作,本文主要介紹了Mysql中substring_index函數(shù)實(shí)現(xiàn)字符分割一行變多行,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12mysql LOAD語(yǔ)句批量錄入數(shù)據(jù)
本章的前面討論如何使用SQL向一個(gè)表中插入數(shù)據(jù)。但是,如果你需要向一個(gè)表中添加許多條記錄,使用SQL語(yǔ)句輸入數(shù)據(jù)是很不方便的。2010-03-03MySQL學(xué)習(xí)之?dāng)?shù)據(jù)庫(kù)備份詳解
本篇文章主要介紹了MySQL中的 數(shù)據(jù)庫(kù)備份詳解,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-09-09