我无法使用全文搜索索引搜索字符串的中间部分,例如:有一个字符串“我喜欢音乐”我无法搜索字符串的中间部分...
答案 0 :(得分:1)
试试LIKE运营商。
SELECT
*
FROM
YourTABLE
WHERE
ColumnName LIKE '%like%'
答案 1 :(得分:0)
在查询中使用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
希望它有所帮助。
答案 2 :(得分:0)
好吧,为了仍然使用全文索引并避免表扫描,请尝试使用
select *
from yourTable
where contains (ColumnName,'like')
and (ColumnName not like 'like%' or ColumnName like '_%like%')
但是,查询优化器可能会认为全表扫描更有效。
答案 3 :(得分:0)
检查您的表的统计信息是否过期,尤其是检查与您的全文索引相关的统计信息。由于您使用的是SQl Server 2008,因此您可以查询DMV以获取索引的统计信息,或使用DBCC查看统计信息详细信息
DBCC SHOW_STATISTICS ("[schema].[table]",indexname);
检查第一个返回结果,[更新],[行],[行采样],如果统计数据过时,或[行采样]远小于[行],这很多导致SQL引擎决定使用表扫描而不是使用索引。