相同格式的结果不同。帮助我理解为什么CONTAINS返回的内容基本上与同一查询不同

时间:2019-05-31 16:08:48

标签: sql sql-server

我有以下查询:

select*
from dbo.Users
where CONTAINS(UEmailLogin,'"email1@mail.com*"')

select *
from dbo.Users
where CONTAINS(UEmailLogin,'"email2@mail.com*"')  

第一个查询不返回任何内容。

第二个返回预期结果。

当我从搜索词中删除星号

'"email1@mail.com"'

vs

'"email1@mail.com*"'

我获得了预期的结果。

我试图了解正在发生的事情。从email1和email2的查询搜索返回的两行几乎相同。唯一的显着区别是它们的创建日期。包含EmailLogin email2的行是在几个月前创建的,而email1是最近的行。

我一直在阅读CONTAINS微软documentation,并且一直在想它可能与索引编制有关。

有知识的人能够提供一些见识吗?

1 个答案:

答案 0 :(得分:0)

CONTAINS用于全文搜索

您的UEmailLogin是否具有值email2@mail.com*或仅具有email2@mail.com?

您还可以选择使用类似查询。