Mysql8.0遞歸查詢(xún)的簡(jiǎn)單用法示例
前言
本文使用Mysql8.0的特新實(shí)現(xiàn)遞歸查詢(xún),文中給出了詳細(xì)的實(shí)例代碼,下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧
Mysql8.0遞歸查詢(xún)用法
表數(shù)據(jù)如下
+--------+----------+------------+
| cat_id | name | parent_cid |
+--------+----------+------------+
| 12 | 美妝 | 0 |
| 4 | 服裝 | 0 |
| 5 | 女裝 | 4 |
| 6 | 男裝 | 4 |
| 7 | 童裝 | 4 |
| 19 | 美容美體 | 12 |
| 18 | 彩妝 | 12 |
| 13 | 護(hù)膚 | 12 |
| 15 | 護(hù)膚套裝 | 13 |
| 40 | 防曬 | 13 |
| 39 | 卸妝 | 13 |
| 38 | 潤(rùn)唇膏 | 13 |
| 17 | 乳液面霜 | 13 |
| 16 | 面膜 | 13 |
| 14 | 化妝水 | 13 |
+--------+----------+------------+
1. 我們需要查詢(xún)出"服裝"分類(lèi)下的所有子分類(lèi)
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. 查詢(xún)出所有“美妝”分類(lèi)下的所有子分類(lèi),并且分類(lèi)名稱(chēng)帶上上級(jí)分類(lèi)的名稱(chēng)
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 | 美妝>護(hù)膚 | 12 |
| 18 | 美妝>彩妝 | 12 |
| 19 | 美妝>美容美體 | 12 |
| 14 | 美妝>護(hù)膚>化妝水 | 13 |
| 15 | 美妝>護(hù)膚>護(hù)膚套裝 | 13 |
| 16 | 美妝>護(hù)膚>面膜 | 13 |
| 17 | 美妝>護(hù)膚>乳液面霜 | 13 |
| 35 | 美妝>護(hù)膚>潔面 | 13 |
| 36 | 美妝>護(hù)膚>精華 | 13 |
| 37 | 美妝>護(hù)膚>眼霜 | 13 |
| 38 | 美妝>護(hù)膚>潤(rùn)唇膏 | 13 |
| 39 | 美妝>護(hù)膚>卸妝 | 13 |
| 40 | 美妝>護(hù)膚>防曬 | 13 |
+--------+------------------------+------------+
3. 查詢(xún)分類(lèi)的所有父級(jí)分類(lèi)
根據(jù)第二個(gè)問(wèn)題的sql做一下調(diào)整即可
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 | 防曬>護(hù)膚 | 12 |
| 12 | 防曬>護(hù)膚>美妝 | 0 |
+--------+----------------+------------+
總結(jié)
到此這篇關(guān)于Mysql8.0遞歸查詢(xún)的文章就介紹到這了,更多相關(guān)Mysql8.0遞歸查詢(xún)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL 使用自定義變量進(jìn)行查詢(xún)優(yōu)化
MySQL自定義變量估計(jì)很少人有用到,但是如果用好了也是可以輔助進(jìn)行性能優(yōu)化的。需要注意的是變量是基于連接會(huì)話的,而且可能存在一些意外的情況,需要小心使用。本篇介紹如何利用自定義變量進(jìn)行查詢(xún)優(yōu)化,提高效率2021-05-05詳解mysql建立索引的使用辦法及優(yōu)缺點(diǎn)分析
索引是快速搜索的關(guān)鍵。MySQL索引的建立對(duì)于MySQL的高效運(yùn)行是很重要的。下面介紹mysql建立索引的優(yōu)缺點(diǎn)及常用使用方法。2016-07-07mysql不同數(shù)據(jù)庫(kù)不同數(shù)據(jù)表導(dǎo)入數(shù)據(jù)
這篇文章主要介紹了mysql不同數(shù)據(jù)庫(kù)不同數(shù)據(jù)表導(dǎo)入數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2015-07-07MySQL中UPDATE與DELETE語(yǔ)句的使用教程
這篇文章主要介紹了MySQL中UPDATE與DELETE語(yǔ)句的使用教程,是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-12-12什么是分表和分區(qū) MySql數(shù)據(jù)庫(kù)分區(qū)和分表方法
這篇文章主要為大家詳細(xì)介紹了MySql數(shù)據(jù)庫(kù)分區(qū)和分表方法,告訴大家什么是分表和分區(qū),mysql分表和分區(qū)有什么聯(lián)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02MySQL函數(shù)CONCAT、CONCAT_WS、GROUP_CONCAT用法詳解
這篇文章主要介紹了MySQL函數(shù)CONCAT、CONCAT_WS、GROUP_CONCAT用法詳解,CONCAT 函數(shù)用于將兩個(gè)字符串連接為一個(gè)字符串,本文通過(guò)實(shí)例代碼詳細(xì)講解,需要的朋友可以參考下2023-02-02生產(chǎn)庫(kù)自動(dòng)化MySQL5.6安裝部署詳細(xì)教程
自動(dòng)化運(yùn)維是一個(gè)DBA應(yīng)該掌握的技術(shù),其中,自動(dòng)化安裝數(shù)據(jù)庫(kù)是一項(xiàng)基本的技能,這篇文章主要介紹了生產(chǎn)庫(kù)自動(dòng)化MySQL5.6安裝部署詳細(xì)教程,需要的朋友可以參考下2016-09-09淺談MySql 視圖、觸發(fā)器以及存儲(chǔ)過(guò)程
這篇文章主要介紹了MySql 視圖、觸發(fā)器以及存儲(chǔ)過(guò)程的的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06