테이블에서 두 개의 쿼리를 실행 중입니다.SQL : Like vs Contains - 다른 결과
SELECT MSDS FROM dbo.MSDSSearch3 WHERE CONTAINS(MSDS, 'STYCAST')
그리고
SELECT MSDS FROM dbo.MSDSSearch3 WHERE MSDS like '%STYCAST%'
첫 번째 쿼리는
'STYCAST 50300 LV'
을 반환하고 두 번째는
'STYCAST 50300 LV'
'STYCAST 2851 BLACK'
을 누군가가 등보다 더 많은 값을 반환 이유를 알고 있나요 돌아갑니다 포함되어 있습니까? 내가 실행중인 방법에 문제가 있습니까? 미리 감사드립니다.
SQL 서버의 버전은 무엇? 2008 년에는'SELECT * FROM sys.dm_fts_parser (' "STYCAST 2851 BLACK"', 1033, 0,0) 파서에 대한 가시성을 얻을 수 있습니다. 문자열이 다르게 처리되는 이유는 알 수 없습니다. –
흥미로운 질문입니다. 두 값이 완전히 동일합니까? 선행/후행 공백 문자가없는 경우. CONTAINS가 정확히 텍스트와 일치하므로 LIKE가 텍스트 + 양쪽 모두와 일치하므로이 문제가 발생할 수 있습니다. – Purplegoldfish
전체 텍스트 카탈로그가 오래된 것 같습니다. [ALTER FULLTEXT CATALOG] (http://msdn.microsoft.com/en-us/library/ms176095.aspx)를 사용하여 다시 작성하려고 할 수 있습니다. –