疫情期間,沒法正常復工,而做爲程序員的咱們能夠遠程辦公,此時工做效率就變得格外重要,由於家裏沒人監督,用巧妙的方法實現了需求,剩下的時間就能夠學習(摸魚)了=。=mysql
表和數據結構以下程序員
表現如圖sql
特色:典型的樹形結構,層級數不肯定(子節點依舊能夠添加子節點,能夠無限衍生)數據結構
查詢一個節點的全部子節點post
例如:咱們查詢「四川」這個節點,須要獲得的結果爲(「成都」,「小吃街1」,「小吃街2」,「廣安」)4個結果集mysql索引
遇到這個需求之後,最容易想到的辦法大概有這麼兩個:學習
這兩種方式不管是時間複雜度仍是業務實現難度都不是我這種懶人可以接受的。。cdn
既然查詢的是全部的子節點,那麼從根節點到結果集的子節點的路徑必定是有一段是相等的。blog
如圖所示:咱們在新增的時候記錄一下路徑遞歸
path = 父path + pid (精華所在,細細品味)
接下來就很容易了:查詢四川的全部子節點:
查詢的like前綴還能匹配索引,你說美不美。
什麼,你不理解爲何能匹配索引?
這裏安利一下個人另外一篇文章
若是對你的思路有啓發,點個贊再走吧~