Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于逗号分隔的字符串数字的SQL搜索查询_Sql_Sql Server_Tsql_Full Text Search - Fatal编程技术网

基于逗号分隔的字符串数字的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的长度不是很大,这就是为什么我不需要为此使用额外的表的原因。这种方式适合我的系统。优秀的代码。谢谢