使用 Parse Android SDK 实现 OR 条件?

Posted

技术标签:

【中文标题】使用 Parse Android SDK 实现 OR 条件?【英文标题】:Implementing OR Condition using Parse Android SDK? 【发布时间】:2014-07-04 06:26:57 【问题描述】:

我是 Parse 的新手,我正在开发一个使用 android PARSE Sdk 的项目,所以我想知道如何使用 android sdk 进行 where 查询或条件。

我想进行这样的查询 [伪代码]

Select * from employ where employId is ("1","2","3")

我在解析文档中找到了this,我不知道它是否有帮助。

编辑:

这是我在 PARSE 上找到的,但它不起作用

String[] id= "1","2","3";
query.whereContainedIn("employId ", Arrays.asList(id));

它返回给我一个空列表,但是如果我一个一个地查询它们,我会得到结果...谁能告诉我有什么问题?

【问题讨论】:

【参考方案1】:

您可以使用 whereContainedIn 来选择特定的行。看到这篇文章你可以得到更多的想法。 https://www.parse.com/questions/different-arrays-and-wherecontainedin-for-android.

List<String> employId = new ArrayList<String>();
employId.add("1"); employId.add("2"); employId.add("2");
query.whereContainedIn("employId", employId);

如果你还不清楚。检查这个https://www.parse.com/docs/android_guide#queries

【讨论】:

它不工作。你能写出确切的查询或代码吗? 它给出了错误,它甚至没有编译。它说“类型 ParseQuery 的 whereContainedIn(String, Collection extends Object>) 方法不适用于参数 (String, String[])” 兄弟,我正在这样做,但即使有记录,它也不会返回任何记录。在我使用列表中的单独值进行查询之前,它正在返回记录,但以这种方式它不返回任何记录 尝试使用整数而不是字符串作为雇员 ID。 我解决了。检查我的答案。愚蠢的解析文档【参考方案2】:

我已经找到了解决方案,我必须说 PARSE 相当蹩脚,更不用说在文档中的任何地方提及这一点了。

问题是我在 inwhereContainedIn 方法中使用的值是字符串类型但实际上它们是指向另一个表行的指针。 我试图仅使用 ids[因为它在解析中显示] 来获取值,但我必须传递 whole object 才能检索它们。这就是它返回空列表的原因。

问题是即使它显示 ID [指向表中对象的指针],我们也不能仅使用 ID 进行搜索,而是如果我们想基于特定对象搜索表,则必须使用完整的 Parse 对象。

【讨论】:

您可以根据此处的文档使用ParseObject.createWithoutData("ClassNameHere", "objectIdHere") 仅使用ID 创建一个指针对象:parse.com/docs/android_guide#objects-pointers

以上是关于使用 Parse Android SDK 实现 OR 条件?的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 8.0 中未显示使用 parse sdk 的推送通知

Parse Android SDK - 基于 Android SDK 中的指针查询

在 Parse SDK Android 中使用未保存的 id null 固定对象查询本地数据存储

doesNotMatchKey:inQuery: 在 Parse SDK for iOS 中返回匹配键的记录

推送通知未在Android 8.0中使用解析sdk显示

Facebook SDK v4 和 Parse SDK