Realm在android中进行IN查询

时间:2016-02-23 17:50:56

标签: android realm

是否可以做" IN"在Android中查询Realm?我的意思是,相当于" SELECT X FROM X WHERE x IN(...)?

非常感谢你!

2 个答案:

答案 0 :(得分:3)

官方IN运营商(自1.2.0起)的工作方式如下:

public RealmQuery<E> in(String fieldName, String[] values) {
    if (values == null || values.length == 0) {
        throw new IllegalArgumentException(EMPTY_VALUES);
    }
    beginGroup().equalTo(fieldName, values[0]);
    for (int i = 1; i < values.length; i++) {
        or().equalTo(fieldName, values[i]);
    }
    return endGroup();
}

答案 1 :(得分:0)

在Java中:

RealmResults dogs = realm
             .where(Dog.class)
             .in("name", new String[] {"Larry","Curly","Moe"})
             .findAll();

在kotlin中(请注意in是关键字,因此,请检查语法更改):

val dogs = realm
     .where<Dog>()
     .`in`("name", arrayOf("Larry", "Curly", "Moe"))

val dogs = realm
     .where<Dog>()
     .anyOf("age", arrayOf("Larry", "Curly", "Moe"))