2012-05-23 41 views
2

是否有可能從MySQL嵌套集檢索多個路徑?重點是在哪裏條件的第二行。嵌套集:檢索多個路徑

SELECT parent.name 
FROM nested_category AS node, 
    nested_category AS parent 
WHERE node.lft BETWEEN parent.lft AND parent.rgt 
    AND node.name = 'Name1' OR node.name = 'Name2' 
ORDER BY node.lft; 
+0

只是一個括號添加到節點名稱'(node.name = '名稱1' OR = '名稱2' )' – Nico

回答

2

是的,當然。

SQLORAND優先級高,所以你需要重寫查詢,如:

SELECT parent.name 
FROM nested_category AS node 
JOIN nested_category AS parent 
ON  node.lft BETWEEN parent.lft AND parent.rgt 
WHERE node.name IN ('Name1', 'Name2') 
ORDER BY 
     node.lft; 

這個查詢是相當低效MySQL因爲連接條件不是優化搜索。

您可能希望將您的集合存儲爲LineString並使用空間索引來加速查詢。

詳情請參閱我的博客此項:node.name

+0

謝謝,先生。 –