从sqlite数据库中检索一组行

时间:2011-04-24 18:38:36

标签: android sqlite where

SELECT * FROM <TableName> WHERE <attribute(id)> IN <ArrayList type>

但是错误

  

04-24 21:18:41.748:   ERROR /错误(29495):   android.database.sqlite.SQLiteException:   没有这样的表:1 :,编译时:   SELECT * FROM Main WHERE id IN [1]

基本上我想选择那些存在于ArrayList中的具有Attribute(id)的行... 但是ArrayList的格式与此类查询的格式不同(我猜) 我认为这就是原因,它没有正常工作

如果我用以下方式查询:

SELECT * FROM <TableName> WHERE <attribute(id)> IN <Integer>

它向我展示了正确的结果......但是它只选择了特定的id行......

注意:ArrayList被替换为Integer ...(这是我的属性(id)的数据类型)

提前致谢:)

2 个答案:

答案 0 :(得分:1)

没有IN <ArrayList type>

您需要使用JAVA代码自己计算枚举字符串。

SELECT * FROM <TableName> WHERE _id IN ('1','2','3','4','5')

另请注意,在Android上,主键建议为_id下划线。

答案 1 :(得分:0)

使用应用时,我更愿意让List我用来包含它所持有的元素:

List<ElementType> = ...

通过这样做,您可以简单地询问每个元素的id。 Pentium10的解决方案可以完成这项工作,但我更喜欢这样做,因为它提供了更大的灵活性。