SQL 服务器 CONTAINS 未按预期工作
SQL Server CONTAINS doesn't work as expected
我有一个地址 table,我想使用自由文本功能 CONTAINS 搜索该地址。
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*"')
在我的table中,有一个条目,其中街道名称以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*')
注意:- 你可以试试这个,把两个值分开....我不知道第 table 列的值包含 'Bier*' or only 'Bier'
我按照建议 here 向我的 Address
table 添加了一个计算列,从而解决了这个问题。其中包含所有相关字段。全文索引现在只考虑这个虚拟列。
我有一个地址 table,我想使用自由文本功能 CONTAINS 搜索该地址。
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*"')
在我的table中,有一个条目,其中街道名称以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*')
注意:- 你可以试试这个,把两个值分开....我不知道第 table 列的值包含 'Bier*' or only 'Bier'
我按照建议 here 向我的 Address
table 添加了一个计算列,从而解决了这个问题。其中包含所有相关字段。全文索引现在只考虑这个虚拟列。