Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie verwendet MySQL die übergeordnete ID, um untergeordnete Knoten rekursiv nach unten abzufragen?

王林
Freigeben: 2023-05-30 16:03:28
nach vorne
1157 Leute haben es durchsucht

Keine Notwendigkeit, gespeicherte Prozeduren zu schreiben, keine Notwendigkeit, Datenbankfunktionen zu erstellen, es kann nur ein Stück SQL implementiert werden

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
Nach dem Login kopieren

Wie verwendet MySQL die übergeordnete ID, um untergeordnete Knoten rekursiv nach unten abzufragen?

Test

--创建测试环境
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,"尧都区");
insert t_test VALUES(8,6,"朝阳区");

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


SELECT * FROM t_test;
Nach dem Login kopieren

Testdatenanzeige

Wie verwendet MySQL die übergeordnete ID, um untergeordnete Knoten rekursiv nach unten abzufragen?

Abfrage-ID= 1, fragen Sie ab, was unter China Place

Wie verwendet MySQL die übergeordnete ID, um untergeordnete Knoten rekursiv nach unten abzufragen?

id=3 liegt, prüfen Sie, welche Orte unter Shanxi liegen

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
Nach dem Login kopieren

Wie verwendet MySQL die übergeordnete ID, um untergeordnete Knoten rekursiv nach unten abzufragen?

id=4, prüfen Sie, welche Orte unter Beijing

Wie verwendet MySQL die übergeordnete ID, um untergeordnete Knoten rekursiv nach unten abzufragen?

Suchen Sie abschließend nach unten die Region Nordchina mit der ID=2

Wie verwendet MySQL die übergeordnete ID, um untergeordnete Knoten rekursiv nach unten abzufragen?

Das obige ist der detaillierte Inhalt vonWie verwendet MySQL die übergeordnete ID, um untergeordnete Knoten rekursiv nach unten abzufragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage