2012-02-06 137 views
1
select homephone,lastName from DEBTOR where contains((lastName,homephone),'"Smith" AND "99 999 9999"') 

第一個查詢返回與AND子句沒有結果但與OR子句預期工作,返回一些記錄與史密斯的姓氏和一些帶有99 999 9999' 爲電話。SQLServer的全文搜索沒有返回預期的結果

我想在FullText中模擬下面的查詢。 我錯過了什麼?

select homephone,lastname from DEBTOR where lastName = 'Smith' and homePhone = '99 999 9999' 

回答

4

CONTAINS子句中的列表不是位置的。正如你寫的查詢,你說你要搜索姓氏的HOMEPHONE列,的列中的一個必須包含「史密斯」 「99 999 9999「。

相反,拆出來分爲兩個獨立的CONTAINS操作:

SELECT homephone,lastName 
    FROM DEBTOR 
    WHERE CONTAINS(lastName,'"Smith"') 
     AND CONTAINS(homephone,'"99 999 9999"') 
+0

感謝您的交代。那麼如何在使用fullText的第二個查詢中完成結果,所以我不必使用昂貴的類似子句呢? – Justin 2012-02-06 23:00:24

+0

@Justin:在我的回答中看到示例代碼。 – 2012-02-06 23:02:04

+0

完美!文檔中的示例不太好。 – Justin 2012-02-06 23:03:18