SQL遞迴查詢實現跟帖蓋樓效果

2022-02-15 04:23:11 字數 863 閱讀 6041

網易新聞的蓋樓樂趣多,某一天也想實現諸如網易新聞跟帖蓋樓的功能,無奈技術不佳(基礎不牢),網上搜尋了資料才發現sql查詢方法有一種叫遞迴查詢,整理如下:

一、查詢出 id = 1 的所有子結點

with my1 as

(select * from table where id = 1 union all

select table.* from my1, table

where my1.id = table.fatherid)

select * from my1

結果包含1這條記錄,如果不想包含,可以在最後加上:where id <> 1

二、查詢出 id = 2 的所有父結點

with my1 as

(select * from table where id = 2 union all select table.*

from my1, table where my1.fatherid = table.id )

select * from my1;

三、刪除 id = 1 的所有子結點(包括id = 1結點)

with my1 as

(select * from table where id = 1 union all select table.*

from my1, table where my1.id = table.fatherid )

delete from table where exists (select id from my1

where my1.id = table.id)

本文摘自木莊網路sql遞迴查詢實現跟帖蓋樓效果

mysql實現父子遞迴查詢sql

在很多業務場景中,我們需要從資料庫查詢一些樹狀結構的資料,多半以id,pid的形式儲存記錄。在oracle中,能夠通過語法輕鬆實現父子級間的遞迴查詢,無論到父,子,孫,曾孫等多少級,都能查出來。但是在mysql中,就沒有像oracle中那樣有現成的語法直接呼叫了。設表test有以下字段 id,nam...

遞迴查詢SQL

lz需要的修改自己為對應的,csdn sqlserve大版主 鄒建 我轉貼並且完善一下 測試資料 create table tb id char 3 pid char 3 name nvarchar 10 insert tb select 001 null 山東省 union all select ...

SQL遞迴查詢

create table t bid int,p bid int insert into t select 1,null union all select 2,1 union all select 3,1 union all select 4,3 union all select 5,4 union...