疫情期间,没法正常复工,而做为程序员的咱们能够远程办公,此时工做效率就变得格外重要,由于家里没人监督,用巧妙的方法实现了需求,剩下的时间就能够学习(摸鱼)了=。=mysql
表和数据结构以下程序员
表现如图sql
特色:典型的树形结构,层级数不肯定(子节点依旧能够添加子节点,能够无限衍生)数据结构
查询一个节点的全部子节点post
例如:咱们查询“四川”这个节点,须要获得的结果为(“成都”,“小吃街1”,“小吃街2”,“广安”)4个结果集mysql索引
遇到这个需求之后,最容易想到的办法大概有这么两个:学习
这两种方式不管是时间复杂度仍是业务实现难度都不是我这种懒人可以接受的。。cdn
既然查询的是全部的子节点,那么从根节点到结果集的子节点的路径必定是有一段是相等的。blog
如图所示:咱们在新增的时候记录一下路径递归
path = 父path + pid (精华所在,细细品味)
接下来就很容易了:查询四川的全部子节点:
查询的like前缀还能匹配索引,你说美不美。
什么,你不理解为何能匹配索引?
这里安利一下个人另外一篇文章
若是对你的思路有启发,点个赞再走吧~