我有带有列消息NVARCHAR(MAX)的MyTable。
ID为1的记录包含消息“ 0123456789333444测试”
当我运行以下查询
DECLARE @Keyword NVARCHAR(100) SET @Keyword = '0123456789000001*' SELECT * FROM MyTable WHERE CONTAINS(Message, @Keyword)
记录ID 1显示在结果中,我认为不应,因为0123456789333444不包含0123456789000001。
有人可以解释为什么记录仍然出现吗?
编辑
select * from sys.dm_fts_parser('"0123456789333444 Test"',1033,0,0)
返回以下内容:
group_id phrase_id occurrence special_term display_term expansion_type source_term 1 0 1 Exact Match 0123456789333444 0 0123456789333444 Test 1 0 1 Exact Match nn0123456789333444 0 0123456789333444 Test 1 0 2 Exact Match test 0 0123456789333444 Test
找到了可行的解决方案。我添加language 1033了一个附加参数。
language 1033
SELECT * FROM MyTable WHERE CONTAINS(Message, @Keyword, langauge 1033)