2012-02-24 59 views
22

我有以下WHERE條款:語法錯誤附近的全文搜索條件「控制」的'

WHERE (@Keywords IS NULL 
      OR (CONTAINS((p.Title, p.Area, p.[Message]), @Keywords)) 
     ) 

如果@Keywords = 'control',則查詢成功執行,並過濾我的記錄

如果@Keywords = 'control of',然後我得到了以下錯誤:

Syntax error near 'of' in the full-text search condition 'control of'.

這是爲什麼,我能做些什麼來解決這個問題?

我使用這種方法而不是使用LIKE條件的主要原因是我可以搜索多個單詞。

回答

27

如果要準確搜索控制

SET @Keywords = '"control of"' 

用雙引號的關鍵字如果你要搜索控制,使用以下命令:

SET @Keywords = 'control AND of' 

但服務器可能考慮作爲垃圾或停止詞,因此在這種情況下使用以下內容:

SET @Keywords = 'control AND "of"' 
+0

乾杯,這已阻止錯誤。但是,只有其中一行包含「控制」時纔會返回結果。我認爲這與全文搜索一起工作,以便它也可以選擇「控制」? – Curt 2012-02-24 17:32:19

+1

可能 - 你應該嘗試所有的3個選項螞蟻比較結果。並注意**垃圾**字 - 服務器只是從搜索中剝離這些詞,假設這不是有趣的和不相關 – 2012-02-24 17:37:34

+5

再次歡呼。但@關鍵字是從Web應用程序傳遞的參數,所以我無法控制文本。將「」替換爲「和」是否可以接受?這樣做搜索的常見方式是什麼?乾杯 – Curt 2012-02-28 09:12:56