2014-09-23 38 views
3

在SQL Server 2008 R2,我做了術語 'C#' 這樣的全文搜索:如何執行SQL Server全文CONTAINS搜索 'C#'

SELECT * 
FROM Book b 
WHERE CONTAINS (b.title , 'c#') 

然而,全文搜索看起來像是去掉磅符號然後執行搜索。

如果我做一個通配符「像」搜索,我得到正確的結果:

SELECT * 
FROM Book b 
where title like '%c#%' 

有沒有辦法做一個全文CONTAINS搜索包含一個哈希/英鎊符號術語?

回答

1

這聽起來像全文搜索正在做它應該的。要獲得完全匹配,請將術語C#放在雙引號中以更改where子句。由於完全匹配按定義區分大小寫,因此可以使用or來搜索小寫和大寫版本。

WHERE CONTAINS(Name, '"C#" or "c#"'); 
+0

修復它。我之前嘗試過,但使用小寫的「c#」,它與任何內容都不匹配。我猜CONTAINS區分大小寫,但LIKE不是。 – Trevor 2014-09-23 21:48:25

+0

老實說,當我看到它時,我對文檔有點困惑。我很高興這個工作,但我很好奇,如果你原來的答案只是上限'C#'會起作用嗎?無論如何,我改變了我的答案以支持區分大小寫。 – 2014-09-24 14:50:12

+1

我似乎無法得到它的工作。我的情況有點不同。我正在尋找以'#'符號開頭的單詞,例如'#mytag'。返回的結果只在'mytag'是一個單詞的地方。即沒有散列符號。任何想法這可能是什麼?我讀取散列符號可能被用作數字的通配符,當用作單詞的前綴時... – pechar 2015-08-06 08:20:17

0

我沒有一個沙箱來測試這個,但你試過CHAR(35)這是英鎊符號嗎?你可以設置一個變量,並將其與CHAR(35)連接起來,這可能會起作用。