나는 나무가 있습니다varchar에 요소 목록이 포함 된 모든 레코드를 삭제하려면 어떻게해야합니까?
Trees(IDNodo, Path, color, ....)
IDMytable는 autonumeric (BIGINT)이며 경로는 VARCHAR 내 트리에서 노드의 전체 경로를 포함 (MAX)입니다.
나는 모든 노드와 하위 노드를 삭제하려면, 그래서 내가 할 수있는 :
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 인 등가가 있는지 모르겠어요.
재귀 프로 시저를 사용하지 않으려합니다.
확실하지 말과 동일합니다 아래처럼 삭제 쿼리를 만들고 싶어; 왜 당신은 color = 'Red'나무에서 삭제를 할 수 없습니까? – Jayvee