我在SQL Server數據庫中有一個Products表,並且我不得不排除使用全文索引的傳統存儲過程的故障。爲了我們的目的,假設Products表中有兩個字段ID,關鍵字。關鍵字字段填入以下內容:SQL問題:使用CONTAINS()不起作用,但LIKE正常工作
ROLAND SA-300此Roland SA-300在MINT條件下爲 !
當我運行下面的語句,我能夠檢索記錄:
SELECT * FROM Products WHERE Keywords LIKE '%SA-300%'
然而,當我運行任何下面的語句,我得到結果爲零:
SELECT * FROM Products WHERE CONTAINS(Keywords, ' SA-300 ')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'SA-300')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"SA-300"')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"*SA-300*"')
但我知道CONTAINS()函數正在工作,因爲當我運行以下任何一個時,我會得到結果:
SELECT * FROM Products WHERE CONTAINS(Keywords, ' Roland ')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'Roland')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"Roland"')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"*Roland*"')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'Roland')
我需要弄清楚爲什麼CONTAINS()函數不適用於'SA-300'這個術語。我是全新索引的新手,所以任何幫助表示讚賞。
沒有線索,但你檢查過索引是最新的嗎? – MichaelGG 2009-02-25 22:01:21