Mysql遞迴查詢,無限級上下級菜單

來源:互聯網
上載者:User

標籤:

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) ASparent_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;

Mysql遞迴查詢,無限級上下級菜單

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.