我無法使用全文搜索索引搜索字符串的中間部分,例如:有一個字符串「我喜歡音樂」,我無法搜索比如它在字符串的中間部分..使用全文搜索在sql server中搜索字符串的中間部分
回答
嘗試LIKE運算符。在查詢
SELECT
*
FROM
YourTABLE
WHERE
ColumnName LIKE '%like%'
使用Like
關鍵字如下:
select * from tablename where col like '%like%'
這裏是像SQL教程:
http://www.w3schools.com/sql/sql_like.asp
這裏是MSDN:
http://msdn.microsoft.com/en-us/library/ms179859.aspx
希望它的幫助。
好吧,爲了能繼續使用全文索引,避免表掃描,試試這個
select *
from yourTable
where contains (ColumnName,'like')
and (ColumnName not like 'like%' or ColumnName like '_%like%')
但是,查詢優化器可能決定全表掃描更有效。
select * from eg_fulltext其中contains(描述,'「like」')和(描述不像'like%'或描述像'_%like%')---它不起作用 – krishnakishore 2013-04-08 05:58:24
嗯。我測試了它,它在我的機器上工作。第二行過濾掉句子開頭只有一個'like'的行,而第一行只包含句子中'like'的行。你能描述一下,什麼不起作用? – alzaimar 2013-04-08 06:12:23
好的我正在跟另一個例子 – krishnakishore 2013-04-08 06:20:58
檢查您的表是否過期的統計信息,尤其是檢查統計信息是否與您的全文索引相關。由於使用的是SQL Server 2008中,所以,你可以查詢DMV讓你的索引統計信息或使用DBCC看到的統計數據詳細信息
DBCC SHOW_STATISTICS ("[schema].[table]",indexname);
檢查第一個返回結果,[更新],[行] ,如果統計數據過期或[取樣的行數]遠遠小於[行數],這會導致SQL引擎決定使用表掃描而不是使用索引,[統計數據]會被[採樣行數]所限制。
我認爲問題是'在字符串/句子中間'這個子句。據我所知,沒有辦法用簡單的全文來查詢。 – alzaimar 2013-04-08 06:18:12
- 1. sql server部分字符串搜索
- 2. 在sql server中尋找全文搜索的字詞部分
- 3. 在SQL 2005中使用全文搜索搜索數字字符串
- 4. SQL Server全文搜索轉義字符?
- 5. 在C++中部分字符串搜索
- 6. 搜索部分字符串
- 7. 「贊」在SQL Server中搜索(,)在字符串中分隔參數
- 8. 在SQL Server中全文搜索
- 9. SQL Server全文搜索
- 10. SQL Server全文搜索
- 11. SQL Server全文搜索 - 僅適用於完整字符串?
- 12. 全字符串自由文本搜索在SQL Server
- 13. SQL Server和Oracle中的全文搜索
- 14. 的Sql Server全文搜索 - 姓氏名字搜索概率
- 15. 使用撇號SQL Server全文搜索
- 16. 使用sql server 2008搜索地址匹配全文搜索
- 17. 使用SQL Server搜索短語全文搜索
- 18. 谷歌喜歡在SQL Server中使用全文搜索的搜索查詢
- 19. SQL Server全文搜索非運算符
- 20. SQL Server全文搜索(&)符號
- 21. 在SQL Server中使用雙引號搜索字符串
- 22. 在PHP中搜索字符串或字符串的一部分
- 23. 全文搜索查詢SQL Server中
- 24. SQL Server 2008中全文搜索結果
- 25. 在shell中搜索文件中的一部分字符串
- 26. 用部分搜索字符串搜索聯繫人
- 27. sql-server全文搜索多級列表字符串
- 28. 在json上的sql server全文搜索
- 29. Mysql全文搜索 - 搜索關鍵字的一部分
- 30. Asteriks通配符在SQL Server全文搜索中不起作用
like operator ... – 2013-04-08 04:59:03