【问题标题】:cursor with AND in where clause在 where 子句中带有 AND 的光标
【发布时间】:2012-07-02 23:52:07
【问题描述】:

如何在 Android Cursor 中的 WHERE 子句中添加 AND


例如:

    Cursor cursor = data.query(
            Banana.URI, 
            new String[]{BananaColumns._ID}, 
            BananaColumns.NAME + "=? AND " + BananaColumns.COLLECTION + "=?", 
            new String[]{bananaData.getName(), bananaData.getCategory()}, 
            null);

这将返回一个空的Cursor。但是Table 包含该查询应该找到的数据。我的格式错了吗?

谢谢

【问题讨论】:

  • 如果你愿意,我觉得这个查询很好:SELECT _id FROM BananaTable WHERE name=<bananaData.getName()> AND collection=<bananaData.getCategory()>。 (我对名称做了一些假设。)仔细检查bananaData 方法是否返回您所期望的。
  • 确实如此。我已经通过它了。我什至用相同的数据做了一个手动的 sql 查询,它工作得很好。再多看几次,看看我是否遗漏了什么。
  • ...令人沮丧。你会发布手动查询吗?
  • 我怀疑有一些特殊字符进来了。你能用硬编码的值测试一下吗?
  • @Sam:确实令人沮丧。但是,我确实发现了错误。我有两个不同的类别...我使用了错误的类别。 o.O 使用正确的类别给了我预期的结果。感谢您的帮助,如果您将评论中的建议作为答案发布,我将非常乐意接受它作为解决方案。

标签: android android-cursor android-sqlite


【解决方案1】:

如果你愿意,我觉得这个查询很好:SELECT _id FROM BananaTable WHERE name=<bananaData.getName()> AND collection=<bananaData.getCategory()>。 (我对名称做了一些假设。)仔细检查bananaData 方法是否返回您所期望的。

【讨论】:

  • 仔细检查我的bananaData返回的数据,帮助我发现我实际上使用了错误的category。我在bananaData 中有多个categories... 尴尬。 o.O
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-24
  • 2012-02-08
  • 1970-01-01
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 2021-02-02
相关资源
最近更新 更多