首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除varchar包含任何元素列表的所有记录?

如何删除varchar包含任何元素列表的所有记录?
EN

Stack Overflow用户
提问于 2014-05-09 15:14:49
回答 1查看 827关注 0票数 0

我有树:

代码语言:javascript
复制
Trees(IDNodo, Path, color, ....)

IDMytable是一个自动数字(bigint),路径是一个varchar(最大),它包含到树中一个节点的完整路由。

我想删除所有的节点和子节点,这样我就可以做到:

代码语言:javascript
复制
delete from trees where Path like '%[IDNode]'%

此删除节点和所有子节点。

但是,如果我想删除所有具有特定属性的节点,可以使用以下查询获得这些节点:

代码语言:javascript
复制
select * from Trees where Color = 'Red';

这给了我所有树上所有红色的节点。我得到了很多IDNodes。然后,我要删除每个红色节点的所有子节点。

代码语言:javascript
复制
delete from trees where Path like IN (select * from Trees where Color = 'Red');

例如,如果路径是长的,我可以使用"IN“,但我不知道当字段是varchar时是否存在等效的路径。

我想避免使用递归过程。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-09 18:22:30

您希望使删除查询如下所示

代码语言:javascript
复制
delete from trees where Path 
IN (select Path from Trees where Color = 'Red');

但是上面的查询是相同的

代码语言:javascript
复制
delete from Trees where Color = 'Red';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23568165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档