2012-04-05 28 views
6

我需要在名称搜索上启用部分匹配。目前它与Like '%@name%'一起使用,但它不够好。在SQL Server的名称字段上做部分匹配

我们需要启用名字和姓氏的输入,并且都需要是部分的,所以我假设全文是要走的路。

问题是,我不能让它做一个名称的部分匹配。例如,搜索我的名字(Fedor Hajdu)将工作,如果我输入完整但不是部分的任何部分(例如,它应该匹配'fe ha'的搜索

我该如何做到这一点?可以将全文索引设置为这样做的音节匹配

回答

3

姆三个选项是妙帮助你:

  1. 的INFLECTIONAL形式(Link
  2. 包含NEAR(Link
  3. CON含有杂质与加权值(Link

如果没有帮助,得到字符串“铁哈”和每一个空格加上“%”,做一个像:

Like '%fe%ha%' 
+0

无论是那些帮助(至少在我用他们的方式)的 – 2012-04-05 08:54:02

+0

好,我看到的只有一个选项,然后离开。请参阅我的编辑 – Diego 2012-04-05 09:02:59

+0

+1链接 – Shiham 2014-09-25 10:08:53

0

使用CONTAINS()或CONTAINSTABLE()只需在匹配字符串的末尾添加*:

CONTAINS(Description,'top *“');

如果你有你的字符串作为参数,你可以串连这样的:

SET @SearchTerm =' “+ @NameParameter + '*”'

CONTAINS(描述,SEARCHTERM);

https://technet.microsoft.com/en-us/library/ms142492(v=sql.105).aspx