Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 Server匹配逗号分隔的varchar列中的部分文本_Sql_Sql Server_Database_Sql Server 2012 - Fatal编程技术网

SQL Server匹配逗号分隔的varchar列中的部分文本

SQL Server匹配逗号分隔的varchar列中的部分文本,sql,sql-server,database,sql-server-2012,Sql,Sql Server,Database,Sql Server 2012,我在表中有一个VARCHAR列category\u text,其中包含存储的通知的标记。我有三个标签查询,投诉和建议和列可以有一个或多个值逗号分隔。我正在应用一个过滤器,过滤器可以有一个或多个值以及逗号分隔的模式 现在我想要的是根据用户正在应用的过滤器检索至少包含一个标记的所有行,例如,用户可以选择“query,suggestion”作为过滤器,结果将是包含其中一个标记的所有行,即query或suggestion select t.category_text from r

我在表中有一个
VARCHAR
category\u text
,其中包含存储的通知的标记。我有三个标签查询,投诉和建议和列可以有一个或多个值逗号分隔。我正在应用一个过滤器,过滤器可以有一个或多个值以及逗号分隔的模式

现在我想要的是根据用户正在应用的过滤器检索至少包含一个标记的所有行,例如,用户可以选择“query,suggestion”作为过滤器,结果将是包含其中一个标记的所有行,即query或suggestion

select 
    t.category_text  
from 
    real_time_notifications t
where 
    charindex('query, suggestion, complaints', t.category_text) > 0
order by 
    t.id desc

创建一个新表,如user_category(user.id链接到user table,category),并在两者上创建索引。它将大大加快搜索速度,并大大简化您未来的维护


如果您仍然坚持这样做,请创建一个内联函数,将字符串拆分为记录,然后合并到测试中。

修复您的数据模型!不要在字符串中存储多个值。然后你可以更明智地处理你的查询。如果你修复了你的模型,那么这个问题就无关紧要了。事实上,您正在使用非规范化的数据,这就是为什么您在努力解决一个简单的问题。