是否可以从MySQL嵌套集中检索多个路径?重点在于where条件的第二行。
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 :(得分:2)
是的,当然。
在SQL
中,OR
的优先级低于AND
,因此您需要将查询重写为:
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
并使用空间索引来加速查询。
有关详细信息,请参阅我的博客中的此条目: