我有带有列消息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
最佳答案
这是因为@Keyword没有用双引号引起来。强制零个,一个或多个匹配。
看一下有关该主题的MSDN。 MSDN