I have a query with several constraints:
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();
}
One of those constraints happens to be related to the same column in my database:
requestsQuery.whereEqualTo(ParseConstantsUtil.REQUEST_STATUS, "Approved");
requestsQuery.whereEqualTo(ParseConstantsUtil.REQUEST_STATUS, "Rejected");
The above does not seem to work. How can I do an OR query for the same database column using ParseQuery?
requestsQuery.whereEqualTo(ParseConstantsUtil.REQUEST_STATUS, "Rejected" || "Approved");
Use ParseQuery#whereContainedIn
:
List<String> vals = new ArrayList<>();
vals.add("Rejected");
vals.add("Approved");
requestsQuery.whereContainedIn((ParseConstantsUtil.REQUEST_STATUS, vals);
See api documentation for more information.