2009-07-14 9 views
1

CONTAINSTABLE 함수에 관한 질문이 있습니다. 나는 검색 문자열로 끝나는 모든 것을 찾고 싶다.전체 텍스트 검색 CONTAINSTABLE

*를 사용하여 searchvalue로 시작하는 모든 것을 찾을 수 있지만 SQL LIKE 함수에서 % 기호에 해당하는 것이 필요합니다.

내가 원하는 것 : 123로 끝나는 모든 것을 찾으십시오. 따라서 searchvalue로는 "CONTAINSTABLE"함수에서 "* 123"을 사용할 수 있습니다. 하지만 그건 작동하지 않습니다 ..

123로 시작하는 모든 결과를 원하면 "123 *"을 사용하면 효과가 있습니다.

하지만 무엇이 '좋아요'% 123입니까? 그것은 CONTAINSTABLE 함수에서 "* 123"이 아닙니다. 그 다음은 무엇입니까?

감사합니다.

+1

중복 http://stackoverflow.com/questions/3400/how-do-you-get-leading-wildcard-full-text-searches-to-work-in-ms-sql의 – NotMe

답변

0

불행히도 SQL Server fulltext 검색은 "%"로 시작하는 표현식 검색을 지원하지 않습니다. 직접 시도했지만 지원되지 않습니다.

CONTAINS ("% postfix")의 경우 이 아닌을 검색 할 수 있습니다.

내가 두 번 전체 텍스트 열을 저장 :

마크

+0

감사합니다 마크, searchvalue에 대한 전체 텍스트 검색을 사용하는 "끝나는"솔루션이 있습니까? –

+0

아니요, 현재로서는 불행히도 아닙니다. 유일한 옵션은 SQL Server에 내장 된 전체 텍스트 검색 대신 Lucene.NET과 같은 다른 제품을 사용하는 것입니다. –

0

은 여기 내 해결 방법입니다. 한 번 정상적인 모양, 다른 사람은 반전한다. "중국을"포함 된 모든 값을 찾고, 나는 다음과 같은 쿼리를 발행합니다

select * from MyBigTable 
where TheNormalColumn contains ('"china*"') 
    or TheReversedColumn contains ('"anihc*") 

그것은 많은 일 두 배를, 두 배의 공간을 차지하지만, 그것을 작동합니다.