我在 SQL Server 2008 上有一个可包含的查询:
SELECT contacts.*, [Rank] FROM
CONTAINSTABLE(Contacts, SearchName, '("department*") AND ("work*")') tmp
JOIN contacts on contacts.contactid = tmp.[key]
WHERE contacts.deleted = 0
这会按预期返回 1 个结果,但是如果用户在其搜索条件中输入了“of”,则查询不会返回任何结果:
SELECT contacts.*, [Rank] FROM
CONTAINSTABLE(Contacts, SearchName, '("department*") AND ("of*") AND ("work*")') tmp
JOIN contacts on contacts.contactid = tmp.[key]
WHERE contacts.deleted = 0
联系记录的全称是“工作和养老金部门”。
如果用户在搜索中包含“and”,也会发生同样的情况。为什么这些词会破坏查询,有没有办法解决它,还是我必须在执行搜索之前去掉这些词?