MySql教程

MySQL 8的递归查询

本文主要是介绍MySQL 8的递归查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

先创建一个表,数据如下

SELECT * FROM t_city WHERE parent_id = '430100';

id

parent_id

name

430101

430100

市辖区

430102

430100

芙蓉区

430103

430100

天心区

430104

430100

岳麓区

430105

430100

开福区

430111

430100

雨花区

430112

430100

望城区

430121

430100

长沙县

430124

430100

宁乡县

430181

430100

浏阳市

430182

430100

宁乡市

 

第一种情况:自底往上递归查询

WITH RECURSIVE cte_city AS(

SELECT * FROM t_city WHERE NAME = '宁乡市'

UNION ALL

SELECT u.* FROM t_city u, cte_city t WHERE u.id = t.parent_id

)

SELECT * FROM cte_city;

id

parent_id

name

430182

430100

宁乡市

430100

430000

长沙市

430000

000000

湖南省

 

第二种情况:从下向下查询

WITH RECURSIVE cte_city AS(

SELECT * FROM t_city WHERE NAME = '长沙市'

UNION ALL

SELECT u.* FROM t_city u, cte_city t WHERE u.parent_id = t.id

)

SELECT * FROM cte_city;

id

parent_id

name

430100

430000

长沙市

430101

430100

市辖区

430102

430100

芙蓉区

430103

430100

天心区

430104

430100

岳麓区

430105

430100

开福区

430111

430100

雨花区

430112

430100

望城区

430121

430100

长沙县

430124

430100

宁乡县

430181

430100

浏阳市

430182

430100

宁乡市

这篇关于MySQL 8的递归查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!