带子字符串的SQL搜索查询

时间:2015-11-16 15:08:01

标签: sql sql-server search sql-server-2012

我试图将一些搜索C#代码转换为旧的SQL项目,但我不知道如何:

  1. 在SQL中拆分字符串
  2. 执行" WHERE LIKE IN(@subTerms)"
  3. 编辑:我正在使用MS SQL Server 2012。

    抱歉,我认为我的问题有足够的信息,相应的SQL表格如下:

    TableName :产品

    :ID(int),名称(varchar)

    数据

    myProduct的

    我的东西

    超级产品

    我的SQL看起来像:

    DECLARE @term varchar;
    SET @term = "My Product"
    
    DECLARE @subTerms varchar/array;
    SET @subTerms = ???  (Split Term by ' ')
    
    SELECT *
    FROM Products
    WHERE Name LIKE IN (@subTerms)
    

    我提供的术语应该提取数据库中的所有可用记录。

1 个答案:

答案 0 :(得分:4)

很难准确地说,根据你所写的内容,但它应该是这样的:

SELECT * FROM Items WHERE Name in ('MyProduct', 'My Stuff', 'Super Product')

顺便说一句,我发现LINQPad在这样的情况下非常有用:您可以将它指向数据库,编写LINQ查询,然后单击“SQL”选项卡以查看为其生成的SQL那个查询。 SQL往往过于冗长,但你通常可以很好地了解它正在做什么,并自己想出一个简化版本。

更新

根据更新的问题,您更清楚自己想做什么。我建议您创建一个支持全文搜索的字段,并使用FREETEXT进行查询。这正是全文搜索的目的。

  

可以输入任何文字,包括单词,短语或句子。如果在全文索引中找到任何术语或任何术语的形式,则生成匹配。