基于逗号分隔的字符串数字的SQL搜索查询
我有一个基于逗号分隔的字符串数字的SQL搜索查询,sql,sql-server,tsql,full-text-search,Sql,Sql Server,Tsql,Full Text Search,我有一个产品模型,它有一个字符串属性,包含以逗号分隔的数字。还有一个与此模型相关的表 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 - RelatedUs
产品
模型,它有一个字符串
属性,包含以逗号分隔的数字。还有一个与此模型相关的表
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
,您应该将此信息存储为连接表。但是,这不是它在源系统中的存储方式。在SQL Server中,可以使用类似于的解决此问题:
where ',' + RelatedUserIdSet + ',' like '%,' + cast(keyword as varchar(255)) + ',%'
请注意,使用逗号分隔集合内容和查询字符串。这会阻止3
匹配3445
在关系数据库中,应该将此信息存储为连接表。但是,这不是它在源系统中的存储方式。在SQL Server中,可以使用类似于
的解决此问题:
where ',' + RelatedUserIdSet + ',' like '%,' + cast(keyword as varchar(255)) + ',%'
请注意,使用逗号分隔集合内容和查询字符串。这会阻止3
匹配3445
在关系数据库中,应该将此信息存储为连接表。但是,这不是它在源系统中的存储方式。在SQL Server中,可以使用类似于
的解决此问题:
where ',' + RelatedUserIdSet + ',' like '%,' + cast(keyword as varchar(255)) + ',%'
请注意,使用逗号分隔集合内容和查询字符串。这会阻止3
匹配3445
在关系数据库中,应该将此信息存储为连接表。但是,这不是它在源系统中的存储方式。在SQL Server中,可以使用类似于
的解决此问题:
where ',' + RelatedUserIdSet + ',' like '%,' + cast(keyword as varchar(255)) + ',%'
请注意,使用逗号分隔集合内容和查询字符串。这会阻止3
匹配3445
RelatedUserIdSet'长度不是很大,这就是我不需要为此使用额外表格的原因。这种方式适合我的系统。优秀的代码。ThanksRelatedUserIdSet的长度不是很大,这就是为什么我不需要为此使用额外的表的原因。这种方式适合我的系统。优秀的代码。ThanksRelatedUserIdSet的长度不是很大,这就是为什么我不需要为此使用额外的表的原因。这种方式适合我的系统。优秀的代码。ThanksRelatedUserIdSet的长度不是很大,这就是为什么我不需要为此使用额外的表的原因。这种方式适合我的系统。优秀的代码。谢谢