MySql利用父id遞歸向下查詢(xún)子節(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ù)展示

查詢(xún) id=1,查詢(xún)中國(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,查詢(xún)山西下邊有哪些地方
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,查詢(xún)北京下邊有哪些地方

最后再?gòu)?id=2 華北地區(qū)往下查詢(xún)

總結(jié)
到此這篇關(guān)于MySql利用父id遞歸向下查詢(xún)子節(jié)點(diǎn)的文章就介紹到這了,更多相關(guān)MySql遞歸查詢(xún)子節(jié)點(diǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL學(xué)習(xí)筆記之?dāng)?shù)據(jù)的增、刪、改實(shí)現(xiàn)方法
這篇文章主要介紹了MySQL學(xué)習(xí)筆記之?dāng)?shù)據(jù)的增、刪、改實(shí)現(xiàn)方法,簡(jiǎn)單介紹了mysql實(shí)現(xiàn)數(shù)據(jù)的增、刪、改相關(guān)語(yǔ)法與使用技巧,需要的朋友可以參考下2016-09-09
mysql ON DUPLICATE KEY UPDATE語(yǔ)句示例
本文介紹一下關(guān)于mysql中INSERT INTO… ON DUPLICATE KEY UPDATE用法2013-11-11
使用MYSQL TIMESTAMP字段進(jìn)行時(shí)間加減運(yùn)算問(wèn)題
這篇文章主要介紹了使用MYSQL TIMESTAMP字段進(jìn)行時(shí)間加減運(yùn)算問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
MySQL插入數(shù)據(jù)時(shí)插入無(wú)效列的解決方法
MySQL插入數(shù)據(jù)時(shí)插入無(wú)效的列,解決方法是在插入時(shí),給字符串類(lèi)型的字段值加上雙引號(hào)2014-07-07
解決MySQL Sending data導(dǎo)致查詢(xún)很慢問(wèn)題的方法與思路
這篇文章主要介紹了解決MySQL Sending data導(dǎo)致查詢(xún)很慢問(wèn)題的方法與思路,感興趣的小伙伴們可以參考一下2016-04-04

