2016-08-11 2 views
1

MySQL 자동 생성 태그 테이블이 있는데, 더 긴 태그 안에 나타나는 더 짧은 태그를 삭제하고 싶습니다.MySQL 부분 일치 삭제하기

예를 들어

SELECT * FROM tags 반환

Donald Trump 
Donald 
Trump 
Hillary Clinton 
Hillary 
Clinton 
US Election 
US 
Election 

내가 더 이상 태그 내에서 나타나는 짧은 태그를 삭제 꿔라고, 그래서 나는 끝낼 :

Donald Trump 
Hillary Clinton 
US Election 

이 가능합니까?

감사합니다.

답변

2

자체와 테이블을 결합하고 더 긴 이름 안에있는 더 짧은 이름의 행을 삭제하십시오.

DELETE t1 
FROM tags AS t1 
JOIN tags AS t2 ON LENGTH(t1.name) < LENGTH(t2.name) AND LOCATE(t1.name, t2.name)