我有带有列消息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

08-27 00:11