我无法使用全文搜索索引搜索字符串的中间部分,例如:有一个字符串“我喜欢音乐”,我无法搜索比如它在字符串的中间部分..使用全文搜索在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