【发布时间】:2014-04-01 11:20:43
【问题描述】:
我在 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”,也会发生同样的情况。为什么这些词会破坏查询,有没有办法解决它,还是我必须在执行搜索之前去掉这些词?
【问题讨论】:
标签: sql sql-server sql-server-2008 containstable