使用單一查詢(遞迴查詢)找出MySQL 表中的所有父項
諸如選單或類別之類的表通常具有層次結構,其中條目透過親子關係相互關聯。在這種情況下,檢索特定條目的所有父項可能會成為一項挑戰,尤其是在嘗試使用單一查詢執行此操作時。
考慮以下包含選單項目的架構:
目標是使用單一查詢來尋找 ID 為 31(類別)的項目的所有父項。為了實現這一點,我們可以採用遞歸查詢:
此查詢使用公共表表達式(CTE)來迭代檢索條目的父項。 vars 子查詢初始化變數@r 和@l,它們分別表示目前條目的ID 和遞歸等級。主子查詢 T1 然後使用遞歸查詢來尋找目前條目的父級,同時遞增層級。
最後,T1 CTE 與選單表 T2 連接,以檢索每個條目的詳細資訊父項。 ORDER BY T1.lvl DESC 子句會依等級降序對結果排序,確保先顯示最接近的父級。
使用此遞歸查詢,我們可以得到以下所需的輸出:
以上是如何使用單一遞歸查詢來尋找 MySQL 表中的所有父條目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!