0

我需要在 Android 上构建一个 sqlite 查询。我的数据库看起来与此类似:

ColA  ColB   ColC
1      Jim      16
2      Rob    14, 12
3      Tom    1, 4, 7

如何运行查询以匹配数字列表中的数字?我正在尝试这样做:

SELECT ColA, ColB FROM nametable WHERE 4 IN ColC

这应该返回第 3 行,而不是第 2 行,所以我不能只使用“LIKE %4%”。

4

2 回答 2

2

我更喜欢你改变你的数据库设计,因为它没有标准化。如下

  1. 从表中删除列 ColC。
  2. 创建另一个具有两列的表:一个 id col,其中包含您拥有的表中记录的 id。湾。包含一个数字的列。

您的表格将如下所示:

表格1

ColA  ColB
 1      Jim
 2      Rob
 3      Tom

表 2

ColA  ColB
 1     16
 2     14
 2     12
 3     1
 3     4
 3     7

您的选择语句将类似于:

Select a.* from table1 a, table2 b where a.ColA == b.ColA and b.Colb = 4

祝你好运

于 2013-09-13T22:52:03.200 回答
0

应该是 LIKE % 4,% OR LIKE % 4 OR LIKE 4, % OR LIKE 4 以使其适用于第一个和最后一个项目。

但这变得越来越复杂。也许您应该有一个具有一对多关系的子表来存储数字。

于 2013-09-13T22:35:21.920 回答