我无法使用全文搜索索引搜索字符串的中间部分,例如:有一个字符串“我喜欢音乐”我无法搜索字符串中间部分的类似内容。
问问题
2609 次
4 回答
1
试试LIKE运算符。
SELECT
*
FROM
YourTABLE
WHERE
ColumnName LIKE '%like%'
于 2013-04-08T04:59:55.700 回答
0
在查询中使用Like
关键字如下:
select * from tablename where col like '%like%'
下面是like in sql的教程:
http://www.w3schools.com/sql/sql_like.asp
这是 MSDN:
http://msdn.microsoft.com/en-us/library/ms179859.aspx
希望它有帮助。
于 2013-04-08T05:03:36.043 回答
0
好吧,为了仍然使用全文索引并避免表扫描,试试这个
select *
from yourTable
where contains (ColumnName,'like')
and (ColumnName not like 'like%' or ColumnName like '_%like%')
但是,查询优化器可能会决定全表扫描更有效。
于 2013-04-08T05:47:55.570 回答
0
检查表的统计信息是否过时,特别是检查与全文索引相关的统计信息。由于您使用的是 SQl Server 2008,因此,您可以查询 DMV 以获取索引的统计信息或使用 DBCC 查看统计详细信息
DBCC SHOW_STATISTICS ("[schema].[table]",indexname);
检查第一个返回结果,[Updated],[rows],[rows sampled],如果统计数据过期,或者[rows sampled]远小于[rows],这很多导致SQL引擎决定使用表扫描而不是使用您的索引。
于 2013-04-08T06:01:12.643 回答