Sql server SQL Server不包含';I don’我没有按预期工作
我有一个地址表,我想用freetext函数来搜索它Sql server SQL Server不包含';I don’我没有按预期工作,sql-server,full-text-search,contains,Sql Server,Full Text Search,Contains,我有一个地址表,我想用freetext函数来搜索它 SELECT [ID] ,[ID_AddressType] ,[Name1] ,[Name2] ,[Street] ,[Number] ,[ZipCode] ,[City] ,[Country] FROM [TrailerLoadingAssistant].[dbo].[Address] WHERE CONTAINS((Name1, Name
SELECT [ID]
,[ID_AddressType]
,[Name1]
,[Name2]
,[Street]
,[Number]
,[ZipCode]
,[City]
,[Country]
FROM [TrailerLoadingAssistant].[dbo].[Address]
WHERE CONTAINS((Name1, Name2, Street, Number, ZipCode, City, Country), '"Bier*" AND "742*"')
在我的表格中,有一个条目,其中街道名称以Bier开头,邮政编码以742开头。为什么脚本找不到条目?如果我用OR替换AND,它会工作,但它也会找到其他条目,其中只满足一个搜索条件
SELECT [ID]
,[ID_AddressType]
,[Name1]
,[Name2]
,[Street]
,[Number]
,[ZipCode]
,[City]
,[Country]
FROM [TrailerLoadingAssistant].[dbo].[Address]
WHERE CONTAINS((Name1, Name2, Street, Number, ZipCode, City, Country), 'Bier*')
AND CONTAINS((Name1, Name2, Street, Number, ZipCode, City, Country), '742*')
注意:-您可以通过分离两个值来尝试此操作……我不知道列表值包含
'Bier*”或仅包含'Bier'
我通过向地址
表中添加一个计算列解决了此问题,正如建议的那样。包含所有相关字段的。全文索引现在只考虑此虚拟列。Microsoft在其文档中声明,由于性能原因,不应添加多个CONTAINS语句,而应使用内联and函数。