色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Mysql查詢語句如何實現無限層次父子關系查詢

瀏覽:7日期:2023-06-23 19:40:37
目錄一、前言二、相關語法函數介紹三、具體實現查詢父級為 2 的下級 無限級查詢四、效率問題EXPLAN 相關參數總結一、前言

單表存儲上下級關系,使用mysql 內置函數循環遞歸查出來

二、相關語法函數介紹@

@是用戶變量,@@是系統變量。

:=

不只在set和update時時賦值的作用,在select也是賦值的作用。

group_concat()

將group by產生的同一個分組中的值連接起來,返回一個字符串結果。

FIND_IN_SET()

查詢字段(strlist)中包含(str)的結果,返回結果為null或記錄

三、具體實現

創建表

查詢父級為 2 的下級 無限級查詢SELECT@ids AS _ids,( SELECT @ids := GROUP_CONCAT( descendant ) FROM relation WHERE FIND_IN_SET( ancestor, @ids ) ) AS cids,@l := @l + 1 AS LEVEL FROMrelation,( SELECT @ids := 2, @l := 0 ) b WHERE@ids IS NOT NULL

列表化

SELECTdescendant.LEVEL,DATA.* FROM(SELECT@ids AS _ids,( SELECT @ids := GROUP_CONCAT( descendant ) FROM relation WHERE FIND_IN_SET( ancestor, @ids ) ) AS cids,@l := @l + 1 AS LEVEL FROMrelation,( SELECT @ids := 2, @l := 0 ) b WHERE@ids IS NOT NULL ) descendant,sys_dept_relation DATA WHEREFIND_IN_SET( DATA.descendant, descendant._ids ) ORDER BYLEVEL,DATA.descendant

查詢ID為 8 的上級 無限級查詢SELECT@id AS _id,( SELECT @id := ancestor FROM relation WHERE descendant = @id ) AS _pid,@l := @l + 1 AS LEVEL FROMrelation,( SELECT @id := 8, @l := 0 ) b WHERE@id > 0

四、效率問題

我目前測試表有8千多數據量

EXPLAN 相關參數

Select_type:

PRIMARY:查詢中最外層的SELECT(如兩表做UNION或者存在子查詢的外層的表操作為PRIMARY,內層的操作為UNION)DERIVED:被驅動的SELECT子查詢(子查詢位于FROM子句)UNCACHEABLE SUBQUERY:一個子查詢的結果不能被緩存,必須重新評估外鏈接的第一行

Type:

NULL: MySQL在優化過程中分解語句,執行時甚至不用訪問表或索引,例如從一個索引列里選取最小值可以通過單獨索引查找完成。index: Full Index Scan,index與ALL區別為index類型只遍歷索引樹System:system是const類型的特例,當查詢的表只有一行的情況下,使用system總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 精品女厕沟底拍撒尿 | 精品无人区一区二区三区a 精品午夜国产在线观看不卡 | 日本精品久久久久久久久免费 | 鸥美毛片| 久久成年视频 | 五月久久亚洲七七综合中文网 | 日韩中文字幕在线免费观看 | 亚洲香蕉久久一区二区三区四区 | 欧美日韩精品一区二区三区视频在线 | 国产三级在线视频观看 | 日韩毛片 | 欧美精品综合一区二区三区 | 国产成人精品视频一区 | 久久厕所 | 一级风流片a级国产 | 男女午夜24式免费视频 | 欧美亚洲视频一区 | 日韩精品一区二区三区 在线观看 | 成人午夜性a一级毛片美女 成人午夜亚洲影视在线观看 | 日本毛片在线观看 | 亚州不卡| 国产偷国产偷亚洲高清在线 | 亚洲一区二区三区四区在线观看 | 日本在线加勒比 | 怡红院免费va男人的天堂 | aaa级精品久久久国产片 | 国内交换一区二区三区 | 亚洲不卡在线 | 成年人www | 欧美精品久久久久久久久大尺度 | 精品成人在线观看 | 久久久精品久久 | 亚洲一区日韩一区欧美一区a | 久久国产精品二区99 | 国产精品久久人人做人人爽 | 黄色影院在线观看视频 | 嫩草一区二区三区四区乱码 | 国产成a人亚洲精v品久久网 | 久揄揄鲁一二三四区高清在线 | 欧美精品黄页免费高清在线 | 成人免费国产欧美日韩你懂的 |