我试图将一些搜索C#代码转换为旧的SQL项目,但我不知道如何:
编辑:我正在使用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)
我提供的术语应该提取数据库中的所有可用记录。
答案 0 :(得分:4)
很难准确地说,根据你所写的内容,但它应该是这样的:
SELECT * FROM Items WHERE Name in ('MyProduct', 'My Stuff', 'Super Product')
顺便说一句,我发现LINQPad在这样的情况下非常有用:您可以将它指向数据库,编写LINQ查询,然后单击“SQL”选项卡以查看为其生成的SQL那个查询。 SQL往往过于冗长,但你通常可以很好地了解它正在做什么,并自己想出一个简化版本。
根据更新的问题,您更清楚自己想做什么。我建议您创建一个支持全文搜索的字段,并使用FREETEXT
进行查询。这正是全文搜索的目的。
可以输入任何文字,包括单词,短语或句子。如果在全文索引中找到任何术语或任何术语的形式,则生成匹配。