mysql 查詢父級

2021-07-07 09:25:16 字數 974 閱讀 6745

mysql遞迴查詢,mysql中從子類id查詢所有父類(做無限分類經常用到)

由於mysql 不支援類似 oracle with ...connect的 遞迴查詢語法

之前一直以為類似的查詢要麼用儲存過程要麼只能用程式寫遞迴查詢.

現在發現原來一條sql語句也是可以搞定的

先來看資料表的結構如下:

id name 

parent_id 

--------------------------- 

1 home 

0 2 

about 

1 3 

contact 

1 4 

legal 

2 5 

privacy 

4 6 

products 

1 7 

support 

1 我要的要求是根據乙個分類id(這個分類id可能是乙個子分類),得到所有的父分類,下面是相應的sql:

select t2.id, t2.name 

from ( 

select 

@r as _id, 

(select @r := parent_id from table1 where id = _id) as parent_id, 

@l := @l + 1 as lvl 

from 

(select @r := 5, @l := 0) vars, 

table1 h 

where @r <> 0) t1 

join table1 t2 

on t1._id = t2.id 

order by t1.lvl desc 

**@r := 5標示查詢id為5的所有父類。結果如下

1, 『home』

2, 『about』

4, 『legal』

5, 『privacy』

MySql遞迴查詢父級 子級資料

1.根據父級id遞迴查詢所有下級id select id from select t1.id,if find in set t1.parent id,pids 0,pids concat pids t1.id 0 as ischild from select id,parent id from ta...

mysql根據子節點查詢父級節點

表結構 create table t test id varchar 64 name varchar 64 parentid varchar 64 基礎資料 insert into t test id,name,parentid value 1 一級選單 0 insert into t test i...

mysql實現查詢指定父級下的所有子級

mysql 中沒有支援遞迴的查詢,自行編寫函式實現。如資料庫裡有部門表dept,欄位有id name pid create table dept id int 11 not null,name varchar 20 pid int 11 not null,primary key id 插入資料 in...