cte sql中的for循環

sql的一種for循環,只有高版本的mysql或mariadb中才會存在的語法

eg:

WITH recursive cte as (
  SELECT * FROM shiro_permission_block WHERE id = 3
union all
  SELECT shiro_permission_block.* FROM shiro_permission_block,cte WHERE cte.id=shiro_permission_block.parentId
)
SELECT * FROM cte

上述 sql 的最終得到的接口是:

我們可以看到,這是一個List結構的tree。

下面一條數據的parentId對應的往往是上一條數據的id

如果需要想要一條sql遍歷出一個樹時,cte語句是一個絕佳的選擇,

list結構的樹可以通過util轉化爲純tree結構並返回。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章