2017-04-04 3 views
0

私はいくつかの制約でクエリを持っている:ParseQueryを使用して同じデータベース列に対してORクエリを実行するにはどうすればよいですか?

requestsQuery.whereEqualTo(ParseConstantsUtil.REQUEST_STATUS, "Approved"); 
requestsQuery.whereEqualTo(ParseConstantsUtil.REQUEST_STATUS, "Rejected"); 

上記動作していないよう:

ParseQuery <ParseObject> requestsQuery = ParseQuery.getQuery(ParseConstantsUtil.CLASS_REQUEST); 
requestsQuery.whereContains(ParseConstantsUtil.REQUEST_AUTHOR, currentUser.getObjectId()); 
requestsQuery.whereEqualTo(ParseConstantsUtil.REQUEST_STATUS, "Approved"); 
requestsQuery.whereEqualTo(ParseConstantsUtil.REQUEST_STATUS, "Rejected"); 
requestsQuery.whereEqualTo(ParseConstantsUtil.REQUEST_READ, false); 
try { 
List <ParseObject> requestsList = requestsQuery.find(); 
return listSize(model, requestsList); 
} catch (ParseException e) { 
e.printStackTrace(); 
} 

これらの制約の一つは、私のデータベース内の同じ列に関連すると発生します。 ParseQueryを使用して同じデータベース列に対してORクエリを実行するにはどうすればよいですか?

requestsQuery.whereEqualTo(ParseConstantsUtil.REQUEST_STATUS, "Rejected" || "Approved"); 
+0

Androidパースを使用した[Multiple Combined "Or" Queries]の可能な複製(http://stackoverflow.com/questions/28892973/multiple-combined-or-queries-using-android-parse) – john16384

答えて

1

使用ParseQuery#whereContainedIn

List<String> vals = new ArrayList<>(); 
vals.add("Rejected"); 
vals.add("Approved"); 
requestsQuery.whereContainedIn((ParseConstantsUtil.REQUEST_STATUS, vals); 

は、より多くの情報のためapi documentationを参照してください。

関連する問題