2013-08-19 5 views
0

나는 아래의 쿼리를 사용하여 SQL Server 용 fulltext searh를 찾습니다.ASP.NET/sql 전체 텍스트 검색

DECLARE @MyTable TABLE (Id int identity(1,1), Searched varchar(200)) 
DECLARE @Keys TABLE (Word varchar(200), WordId int identity(1,1)) 

INSERT INTO @MyTable VALUES ('Mother Father Daughter Son') 
INSERT INTO @MyTable VALUES ('Mother Daughter Son') 
INSERT INTO @MyTable VALUES ('Mother Son') 
INSERT INTO @MyTable VALUES ('Daughter Son') 
INSERT INTO @MyTable VALUES ('Mother Father Son') 
INSERT INTO @MyTable VALUES ('Son Daughter Father') 
INSERT INTO @MyTable VALUES ('Mother bun') 
INSERT INTO @MyTable VALUES ('Other Word') 


INSERT INTO @Keys VALUES ('Mother') 
INSERT INTO @Keys VALUES ('Father') 
INSERT INTO @Keys VALUES ('Son') 
INSERT INTO @Keys VALUES ('Daughter') 

DECLARE @nAllWords int 
SELECT @nAllWords = COUNT(*) FROM @Keys 

SELECT MyTable.* 
FROM @MyTable MyTable 
INNER JOIN (SELECT MyTable.Id 
        FROM @MyTable MyTable 
      INNER JOIN @Keys KeyWords ON ' ' + MyTable.Searched + ' ' LIKE '% ' + KeyWords.Word + ' %' 
      GROUP BY MyTable.Id 
      HAVING COUNT(Distinct(KeyWords.Word)) = @nAllWords) Tbl1 ON MyTable.Id = Tbl1.Id 

그러나 위 코드는 하나보다 작은 단일 레코드 만 반환합니다.

Mother Father Daughter Son 

은 내가 다음 전체 4 개 단어 (어머니 아버지 딸 아들), 옆에있는 세 단어 (어머니 딸 아들)처럼 될 필요가있는 2, 다음 1 그래서

Mother Father Daughter Son 
Mother Daughter Son 
Mother Father Son 
     : 
     : 

Mother bun 

처럼 내 결과를하시기 바랍니다 조언이 여러 열에 대해, 나는 지금 한 열로 노력하고 있습니다. 일단 내가 여러 열로 시도해 보겠습니다.

답변

0

쿼리에서 아래 코드를 제거하면 원하는 결과가 나타납니다!

HAVING COUNT(Distinct(KeyWords.Word)) = @nAllWords