亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mysql8.0遞歸查詢的簡單用法示例

 更新時間:2021年08月03日 14:48:01   作者:阿豪_mike  
在項目中會遇到同一個表中保存著父子關(guān)系的數(shù)據(jù),最常見的就是處理樹形結(jié)構(gòu)資源,這篇文章主要給大家介紹了關(guān)于Mysql8.0遞歸查詢的簡單用法,需要的朋友可以參考下

前言

本文使用Mysql8.0的特新實現(xiàn)遞歸查詢,文中給出了詳細的實例代碼,下面話不多說了,來一起看看詳細的介紹吧

Mysql8.0遞歸查詢用法

表數(shù)據(jù)如下

+--------+----------+------------+
| 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. 查詢分類的所有父級分類

根據(jù)第二個問題的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 | 防曬>護膚      |         12 |
|     12 | 防曬>護膚>美妝 |          0 |
+--------+----------------+------------+

總結(jié)

到此這篇關(guān)于Mysql8.0遞歸查詢的文章就介紹到這了,更多相關(guān)Mysql8.0遞歸查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論