您好,登錄后才能下訂單哦!
這篇文章主要介紹“Mysql8.0遞歸查詢的簡單用法”,在日常操作中,相信很多人在Mysql8.0遞歸查詢的簡單用法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Mysql8.0遞歸查詢的簡單用法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
本文使用Mysql8.0的特新實現遞歸查詢,文中給出了詳細的實例代碼,下面話不多說了,來一起看看詳細的介紹吧
表數據如下
+--------+----------+------------+
| cat_id | name | parent_cid |
+--------+----------+------------+
| 12 | 美妝 | 0 |
| 4 | 服裝 | 0 |
| 5 | 女裝 | 4 |
| 6 | 男裝 | 4 |
| 7 | 童裝 | 4 |
| 19 | 美容美體 | 12 |
| 18 | 彩妝 | 12 |
| 13 | 護膚 | 12 |
| 15 | 護膚套裝 | 13 |
| 40 | 防曬 | 13 |
| 39 | 卸妝 | 13 |
| 38 | 潤唇膏 | 13 |
| 17 | 乳液面霜 | 13 |
| 16 | 面膜 | 13 |
| 14 | 化妝水 | 13 |
+--------+----------+------------+
1. 我們需要查詢出"服裝"分類下的所有子分類
with recursive type_cte as ( select * from t_category where cat_id = 4 union all select t.* from t_category t inner join type_cte type_cte2 on t.parent_cid = type_cte2.cat_id ) select cat_id, name, parent_cid from type_cte
+--------+------+------------+
| cat_id | name | parent_cid |
+--------+------+------------+
| 4 | 服裝 | 0 |
| 5 | 女裝 | 4 |
| 6 | 男裝 | 4 |
| 7 | 童裝 | 4 |
+--------+------+------------+
2. 查詢出所有“美妝”分類下的所有子分類,并且分類名稱帶上上級分類的名稱
with recursive type_cte as ( select cat_id,name,parent_cid from t_category where cat_id = 12 union all select t.cat_id,concat(type_cte2.name,'>',t.name),t.parent_cid from t_category t inner join type_cte type_cte2 on t.parent_cid = type_cte2.cat_id ) select cat_id, name, parent_cid from type_cte;
+--------+------------------------+------------+
| cat_id | name | parent_cid |
+--------+------------------------+------------+
| 12 | 美妝 | 0 |
| 13 | 美妝>護膚 | 12 |
| 18 | 美妝>彩妝 | 12 |
| 19 | 美妝>美容美體 | 12 |
| 14 | 美妝>護膚>化妝水 | 13 |
| 15 | 美妝>護膚>護膚套裝 | 13 |
| 16 | 美妝>護膚>面膜 | 13 |
| 17 | 美妝>護膚>乳液面霜 | 13 |
| 35 | 美妝>護膚>潔面 | 13 |
| 36 | 美妝>護膚>精華 | 13 |
| 37 | 美妝>護膚>眼霜 | 13 |
| 38 | 美妝>護膚>潤唇膏 | 13 |
| 39 | 美妝>護膚>卸妝 | 13 |
| 40 | 美妝>護膚>防曬 | 13 |
+--------+------------------------+------------+
3. 查詢分類的所有父級分類
根據第二個問題的sql做一下調整即可
with recursive type_cte as ( select cat_id,name,parent_cid from t_category where cat_id = 40 union all select t.cat_id,concat(type_cte2.name,'>',t.name),t.parent_cid from t_category t inner join type_cte type_cte2 on t.cat_id = type_cte2.parent_cid ) select cat_id, name, parent_cid from type_cte;
+--------+----------------+------------+
| cat_id | name | parent_cid |
+--------+----------------+------------+
| 40 | 防曬 | 13 |
| 13 | 防曬>護膚 | 12 |
| 12 | 防曬>護膚>美妝 | 0 |
+--------+----------------+------------+
到此,關于“Mysql8.0遞歸查詢的簡單用法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。