【发布时间】:2012-04-03 11:37:57
【问题描述】:
我有一个这样的搜索字符串:'value1,value4,value8'
我有一个像这样的条目的数据库表:
id | value
-----+------------------------
1 | value1,value2,value3
2 | value3,value4,value9
3 | value4,value8,value9
4 | value2,value3,value9
现在我正在寻找一种方法来搜索数据库中包含 value1、value4 或 value8 的所有记录。
在此示例中,我在进行选择时需要记录 1、2 和 3。
我已经有一个拆分函数,可以将我的搜索字符串拆分为 IN VALUES,如下所示:'value1'、'value4'、'value8',但我无法让它工作以选择正确的记录。
谢谢。
【问题讨论】:
-
你知道数据不是第三范式吗?您是否考虑过先修复数据,然后 TSQL 语法更简单,查询执行效率更高?
-
根据你想要的记录 1,2 和 3 那么你的意思是包含 value1, value4, OR value8
-
你的意思是一个包含所有值的表和一个引用这些值的 id 的表?
-
一行。记录 1 不包含 value1、value4、AND value8。记录 1 包含 value1、value4、OR value8。
标签: sql-server sql-server-2008 tsql split