cte sql中的for迴圈

2021-09-28 21:45:41 字數 492 閱讀 2897

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結構並返回。

SQL中的迴圈 for迴圈 游標

sql中的迴圈 for迴圈 游標 1.利用游標迴圈更新 刪除memberaccount表中的資料 declare my cursor cursor 定義游標 for select from dbo.memberaccount 查出需要的集合放到游標中 open my cursor 開啟游標 fetc...

PHP中的for迴圈

for expr1 expr2 expr3 第乙個表示式 expr1 在迴圈開始前無條件求值一次。expr2 在每次迴圈開始前求值。如果值為 true,則繼續迴圈,執行巢狀的迴圈語句。如果值為 false,則終止迴圈。expr3 在每次迴圈之後被求值 執行 每個表示式都可以為空或包括逗號分隔的多個表...

Oracle中的迴圈

主要有以下五種迴圈 exit when loop while for 普通迴圈 for 游標迴圈 下面舉例一一說明 均為儲存過程 1 exit when迴圈 create or replace procedure proc test exit when is i number begin i 0 l...