mysql子類是什麼 MySQL 子類節點查詢

2021-10-18 22:13:25 字數 952 閱讀 9648

以前做過類似的查詢,是關於商品分類的,不過當時用的是mysql自定義函式裡面寫的遞迴,實現比較簡單。這裡如果只用一句sql查詢,只能利用sql變數做文章了。大致說下實現思路:

按parent_id從小到大遍歷depts所有記錄,不斷拼接@all_path變數,遍歷完之後,取最後一條記錄,3,4,7,8,6,1,:,5,2,

很顯然,上面每個根節點為0的都是分號分隔了,根據tg的id=1再次做乙個字串處理,得到1,3,4,7,8,6

最後聯合users表查詢即可

select

u.*from

depts as d,

users as u,

(select

depts_node

from

(select

@auto_id:=@auto_id + 1 as auto_id,

@all_path:=if(parent_id = 0, concat(@all_path, ':,', id, ','), replace(@all_path, concat(',', parent_id, ','), concat(',', id, ',', parent_id, ','))) as depts_node

from

depts, (select @auto_id:=0, @all_path:='') vv

order by parent_id asc) as all_depts

order by auto_id desc

limit 0 , 1) as f

where

d.dept_name = 'tg'

and find_in_set(u.dept_id,

concat(d.id,

substring_index(substring_index(f.depts_node, concat(',', d.id, ','), 1),

- 1)))

mysql是什麼 MySQL是什麼?(一)

在學習mysql之前,首先需要了解資料庫和sql。如果您已經知道資料庫和sql,那麼可以直接跳轉到下一章節的學習。1.資料庫簡介 當您拍攝 並將其上傳到微博,朋友圈等,這樣的社交網路中的帳戶時,您的 庫就有可能儲存在乙個資料庫中。當您瀏覽電子商務 購買鞋子,衣服等時,您使用購物車就是資料庫應用。資料...

mysql 死鎖是什麼 mysql死鎖是什麼意思

mysql死鎖是指兩個或多個事務在同一資源上相互占用,並請求鎖定對方占用的資源,從而導致惡性迴圈。innodb儲存引擎能檢測到死鎖的迴圈依賴並立即返回乙個錯誤。只有部分或完全回滾其中乙個事務,才能打破死鎖。什麼是死鎖?它是如何產生的?死鎖是指兩個或多個事務在同一資源上相互占用,並請求鎖定對方占用的資...

mysql db是什麼 MySQL是什麼?

在學習mysql之前,首先需要了解資料庫和sql。如果您已經知道資料庫和sql,那麼可以直接跳轉到下一章節的學習。1.資料庫簡介 當您拍攝 並將其上傳到微博,朋友圈等,這樣的社交網路中的帳戶時,您的 庫就有可能儲存在乙個資料庫中。當您瀏覽電子商務 購買鞋子,衣服等時,您使用購物車就是資料庫應用。資料...