在不同条件下使用IN参数进行sqlite查询

时间:2013-01-21 13:11:46

标签: sql sqlite

我在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行。

由于

1 个答案:

答案 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>