我有树:
Trees(IDNodo, Path, color, ....)IDMytable是一个自动数字(bigint),路径是一个varchar(最大),它包含到树中一个节点的完整路由。
我想删除所有的节点和子节点,这样我就可以做到:
delete from trees where Path like '%[IDNode]'%此删除节点和所有子节点。
但是,如果我想删除所有具有特定属性的节点,可以使用以下查询获得这些节点:
select * from Trees where Color = 'Red';这给了我所有树上所有红色的节点。我得到了很多IDNodes。然后,我要删除每个红色节点的所有子节点。
delete from trees where Path like IN (select * from Trees where Color = 'Red');例如,如果路径是长的,我可以使用"IN“,但我不知道当字段是varchar时是否存在等效的路径。
我想避免使用递归过程。
发布于 2014-05-09 18:22:30
您希望使删除查询如下所示
delete from trees where Path
IN (select Path from Trees where Color = 'Red');但是上面的查询是相同的
delete from Trees where Color = 'Red';https://stackoverflow.com/questions/23568165
复制相似问题