领域:结合“或”和“和”

时间:2016-06-21 15:02:32

标签: realm

我正在寻找一种在领域查询中组合AND和OR的方法。

这是我的班级:

class Event extends RealmObject {
   String id;
   String date;
}

现在,我有一个id的列表,我想要使用ID {1,4,5}和Event检索date = "2016-01-01"。在SQL中,我会有一个类似的查询:WHERE id IN ids AND date = 'mydate'

到目前为止我尝试过:

RealmQuery<Event> query = realm.where(Event.class);

for(String id : ids) {
   query = query.or().equalTo("id", id);
}

query.equalTo("date", "2016-01-01");

但它不会那样工作。我怎么能在Realm中做到这一点?

1 个答案:

答案 0 :(得分:2)

这是解决方案。感谢指点我“群组:

RealmQuery<Event> query = realm.where(Event.class);
int x = 0
for(String id : ids) {
   if (x != 0) {
     query.or();
   }
   query.beginGroup();
   query.equalTo("id", id);
   query.equalTo("date", "2016-01-01");
   query.endGroup();
   x++;
}