我有一个数据库,其中有一个以逗号分隔的字段。
基本上我希望能够轻松搜索这些字段。
ID Value
1 1,2,3
2 2,3,4
3 2,3,1
4 1
例如,如何查询数据库并获取对该值具有“1”的任何值的数据库字段ID和值。这应该返回ID的1,3和4。
答案 0 :(得分:8)
如果无法修复设计(请参阅Storing multiple choice values in database)
...
WHERE
',' + field + ',' LIKE '%,1,%'
编辑:另请参阅Storing arrays in the database以了解对此设计的另一种批评
答案 1 :(得分:2)
SELECT ID FROM Table WHERE ',' + Value + ',' LIKE '%,@value,%'
但我强烈建议您更改数据库设计。没有理由在关系数据库中使用分隔列表。每个值都应该在数据模型中具有自己独特的位置。 (如果您在这种情况下的值应该是数字,则尤其如此,因为在此设计中它们是字符。)
编辑:更正了查询,@ gbn发现了一些我没有注意到的内容......
答案 2 :(得分:0)
从表中选择id,其中charindex(1,value)> 0