【发布时间】:2017-06-19 22:39:18
【问题描述】:
我一直在阅读 Realm Java 文档,但找不到 像 SQL 中的子句“IN”之类的东西,有人可能使用过类似的东西?目前我正在使用循环来一一带来结果,但我不想这样做。
感谢您的帮助!
【问题讨论】:
-
IN 目前不受支持,但我们在此处跟踪它时遇到问题:github.com/realm/realm-java/issues/841。目前解决方案是在循环中创建查询。
我一直在阅读 Realm Java 文档,但找不到 像 SQL 中的子句“IN”之类的东西,有人可能使用过类似的东西?目前我正在使用循环来一一带来结果,但我不想这样做。
感谢您的帮助!
【问题讨论】:
Realm 支持in 子句已有一段时间了,但直到 3.1.3 才正式记录。它适用于字符串、数字字段、日期和二进制数据。
字符串的示例用法:
realm.where(Person.class)
.in("name", new String[]{"Jill", "William", "Trillian"})
.findAll();
或者您可以选择忽略大小写..
realm.where(Person.class)
.in("name", new String[]{"Jill"}, Case.INSENSITIVE)
.findAll();
请参阅https://realm.io/docs/java/latest/#filtering 了解更多信息。
【讨论】:
不幸的是,直到领域版本 1.1.0 才支持“IN()”,但这里有一些解决“IN()”的方法
RealmQuery<YourObject> query = realm.where(YourObject.class);
for (String id : ids) {
query.or().equalTo("yourField", id);
}
RealmResults<YourObject> results = query.findAll();
【讨论】: