基于字符串的SQL搜索查询 - 用逗号分隔的数字

时间:2014-07-10 15:51:32

标签: sql sql-server tsql full-text-search

我有一个Product模型,其string属性包含用逗号分隔的数字。还有一个与此模型相关的表。

public class Product 
{
  ....
  public string RelatedUserIdSet { get; set; }
}

//different variants
row1 - RelatedUserIdSet = "1,3,43,555,90,4";
row2 - RelatedUserIdSet = "3445,737,34,54";
row3 - RelatedUserIdSet = "3445,88,44,54,3";
row4 - RelatedUserIdSet = "";
row5 - RelatedUserIdSet = "44";
row6 - RelatedUserIdSet = "11,5,655,89,99,447,1455,12,112,658";
.....

我需要一个帮助来创建一个SQL查询来查找RelatedUserIdSet包含给定关键字的产品。 假设,如果关键字为keyword = 3,我们将获得model1model3

1 个答案:

答案 0 :(得分:3)

在关系数据库中,您应该将此信息存储为联结表。但是,这不是它如何存储在源系统中。在SQL Server中,您可以使用like

解决此问题
where ',' + RelatedUserIdSet + ',' like '%,' + cast(keyword as varchar(255)) + ',%'

请注意使用逗号分隔设置内容和查询字符串。这可以防止33445匹配。