我的NVARCHAR
专栏中有以下文字
"Ich bin eine SuperbProdukt"
我在该列上启用了全文搜索,我可以通过执行我编写的以下查询来搜索它:
SELECT FROM MY_TABLE WHERE CONTAINS(Title, ' "Ich*" ')
该查询为我提供了包含我的搜索条件的所有结果,我还可以在整个文本中搜索其他单词,例如“ Superb
”并返回相同的记录。但是,我正在尝试提供一种搜索功能,即使我给出的关键字不是短语中任何单词的开头,而是介于. 例如,我希望在搜索“ Produkt
”时得到相同的记录
有没有办法在不使用LIKE
操作的情况下在 SQL Server 中实现这一点?我听说CharIndex
可以完成这项工作,但我不知道这对我的场景有什么帮助。
PS:我在 Azure 上使用 SQL SERVER 2012。
是的,可以使用CHARINDEX来实现您所描述的。根据此评论:
知道您只需要像这样过滤行:
结果如下:
如您所见,它不仅带来了以an开头的中间名,而且还带来了文本中间带an的中间名。
关于此方法的一点说明是,与使用全文搜索不同,它将扫描您的表。它可能(而且几乎肯定会)对性能产生很大影响。