我们的数据库中的xml字段有一个全文索引。
如果我运行此查询:
select *
from UserProfile
where CONTAINS(UserData,'028894507')
我得到了正确的结果。但是,如果我运行此查询:
select *
from UserProfile
where CONTAINS(UserData,'02889')
我得到了完全不同的结果集,它甚至不包含第一个查询的结果。
我做了一个快速的谷歌搜索,发现有停止的话可以甩掉结果,但我的数据库中甚至没有停止列表...
答案 0 :(得分:0)
我不是TSQL专家,但是 -
我相信CONTAINS搜索全字匹配。您还可以使用*
字符搜索前缀匹配。
select * from UserProfile where CONTAINS(UserData,'"02889*"')
这应匹配包含028894507
的行,以及带有以02889
开头的数字的任何行。请注意,在进行前缀匹配时,双引号很重要。