所以我在充滿類數據庫中有一個表的結構是這樣的:有沒有更有效的方式來循環這個sql結果集?
PK INT:CAT_ID
INT:PARENT_ID
VARCHAR:cat_name
的頂層類具有空PARENT_ID,而且有可能是幾個級別的孩子。 基本上,我正在搜索字符串並將其與類別名稱進行匹配,如果該類別具有父母,那麼我希望顯示所有匹配的麪包屑時尚完整路徑。下面是僞代碼爲我現在所做的:
search_string = whatever;
result = query db and find all category names matching "%whatever%";
foreach(result)
{
parent_id = result[parent_id];
result_path = result[cat_name];
while(parent_id != null)
{
result2 = query db and find cat_id = parent_id;
result_path = result2[cat_name] + " > " + result[path];
parent_id = result2[parent_id];
}
print result_path;
}
有沒有更有效的方法比嵌套循環和數據庫查詢,這樣做其它?
感謝您的任何意見。
http://en.wikipedia.org/wiki/Join_(SQL)一般來說,任何基於父查詢結果的嵌套查詢都可以/應該被重寫爲連接。 – 2013-02-21 03:00:43
我試過自己加入表格,你能給我一個關於如何編寫n級聯接的例子嗎? – user2027914 2013-02-21 03:14:43
@ user2027914:你的表格有多大?如果大約數百(s) - 如何將所有內容作爲'select * from category'獲取並在php端構建樹? – zerkms 2013-02-21 03:22:54