我有一个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
,我们将获得model1
和model3
。
答案 0 :(得分:3)
在关系数据库中,您应该将此信息存储为联结表。但是,这不是它如何存储在源系统中。在SQL Server中,您可以使用like
:
where ',' + RelatedUserIdSet + ',' like '%,' + cast(keyword as varchar(255)) + ',%'
请注意使用逗号分隔设置内容和查询字符串。这可以防止3
与3445
匹配。