【发布时间】:2019-01-04 16:11:41
【问题描述】:
我希望避免对使用 LIKE 关键字的查询进行全扫描:
SELECT *
FROM MYTABLE
WHERE MYCOLUMN LIKE '%WORD%'` AND PRICE < 3;
使用 SQL Server,我们可以定义全文索引并将其与CONTAINS 子句(和其他子句)一起使用。问题:我不允许更改我的查询,所以我希望服务器使用带有LIKEkeyword 的全文索引。
有可能吗?
【问题讨论】:
-
你不能。您要么需要使用
CONTAINS(带有全文索引),要么删除前导通配符;这不会提供相同的结果。将LIKE与前导通配符一起使用会使查询不可搜索。我怀疑这是一个 XY 问题;为什么你不能使用CONTAINS?你说你不能改变你的查询;为什么? -
因为查询是由软件自动生成的,我无法更改此软件的代码。
标签: sql-server full-text-search sql-like full-text-indexing