我正在嘗試構建一個非常簡單的CMS。爲此,我創建了一個名爲categories的表。顧名思義,這將是CMS中我的文章的類別。選擇引用同一表中其他元素的元素
我的表看起來與樣本數據如下:
正如你所看到的,一類節點都有一個父節點。現在,如何編寫一個查詢來選擇特定節點的所有父節點。例子,如果讓我選擇,節點重要,我怎麼能編寫一個查詢將返回我下面的節點:新聞,用戶,一般
我希望我很清楚
我正在嘗試構建一個非常簡單的CMS。爲此,我創建了一個名爲categories的表。顧名思義,這將是CMS中我的文章的類別。選擇引用同一表中其他元素的元素
我的表看起來與樣本數據如下:
正如你所看到的,一類節點都有一個父節點。現在,如何編寫一個查詢來選擇特定節點的所有父節點。例子,如果讓我選擇,節點重要,我怎麼能編寫一個查詢將返回我下面的節點:新聞,用戶,一般
我希望我很清楚
我可以「T說,我真的很喜歡這種方法,但下面出現在MySQL的:
select t.id, t.parent, @parent := parent
from (select @parent := 7) const join
t
on t.id = @parent;
你可以看到它在這個SQL Fiddle。
我不認爲這是保證工作,但它似乎工作在實踐中。如果您需要存儲分層數據,則應該真正更改數據結構或切換到支持遞歸查詢(例如Postgres,SQL Server和Oracle)的數據庫。
啊,它似乎工作! +1用於調用遞歸查詢並將其描述爲分層數據,因爲在命名問題時我不知道該怎麼稱呼它:P – Krimson
看一看:** http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/** –
@ PM77-1感謝您將我鏈接到! – Krimson