登录
首页 >  数据库 >  MySQL

Mysql8 递归查询

来源:SegmentFault

时间:2023-02-16 15:26:59 240浏览 收藏

小伙伴们有没有觉得学习数据库很有意思?有意思就对了!今天就给大家带来《Mysql8 递归查询》,以下内容将会涉及到MySQL、递归,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

Mysql8以上支持递归查询了

1.构造表

DROP TABLE IF EXISTS `t_area`;
CREATE TABLE `t_area` (
  `id` int(11)  NOT NULL AUTO_INCREMENT,
  `name` char(64)  NOT NULL DEFAULT 0 COMMENT '名称',
  `p_id` int(11)  NOT NULL DEFAULT 0 COMMENT '父id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='test';

insert into t_area (id,name, p_id) VALUES (1,'中国',0),(2,'广西省',1),(3,'广东省',1),(4,'广州市',3),(5,'深圳市',3),(6,'白云区',4),(7,'越秀区',4),(8,'福田区',5),(9,'南山区',5);

2.递归查询sql

with recursive  t as(
  select * from t_area  where id=3
  union all 
  select c.* from t_area c join t on c.p_id = t.id
)
select *from t;

3.实测

image

理论要掌握,实操不能落!以上关于《Mysql8 递归查询》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>