Java 如果数字在数字列表中,如何形成sqlite查询来选择行

Java 如果数字在数字列表中,如何形成sqlite查询来选择行,java,android,sqlite,Java,Android,Sqlite,我需要在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%或像%4%或像4%或像4%才

我需要在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%或像%4%或像4%或像4%才能使第一个和最后一个项目工作


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

我希望您更改数据库设计,因为它不是标准化的。如下

  • 从表中删除列ColC
  • 创建另一个包含两列的表: A.包含表中记录id的id列。 B包含一个数字的列
  • 您的表将如下所示:

    表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语句类似于:

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

    祝您好运

    尝试使用
    “如%4、%”“
    应为
    如%4、%或如%4
    ,以使其适用于最后一项,因此没有编号列表方法?要用什么样的?如果4是单独存在还是先存在,这些会起作用吗?你是对的,不会。请参阅下面我编辑的答案。这很有效,但我希望答案不是基于字符串的。除非您更改数据库的设计,否则我认为没有任何非基于字符串的答案。数据库的设计是基于字符串的!你不能两全其美:)