我在sqlite中有一个名为Devices的表,其中包含以下列
Id, DeviceId, FavBrands, FavCategories
其中的样本数据是
1 50ea9017cb5ad 1,2,8,9 4,6,8
2 50ead1683dcc0 3,7,9 4,5,9
3 50ee73b56c4ea 1,2,7 6,7,8
我想查询此表以返回其中包含FavBrands 7的deviceid 对于上面的表格,它应该给出第2和第3行。
由于
答案 0 :(得分:2)
你可以用这个:
SELECT * FROM Devices
WHERE instr(','||FavBrands||',' , ',7,')>0;
(关于请将数据库规范化的强制性评论,链接指向 Is storing a delimited list in a database column really that bad?)。
如果您注意到其他建议并使用LIKE
,请确保使用'%,7,%'
并在此处添加逗号,以避免误报(例如,在列表中使用77
)。< / p>