java - 使用精确字符串的 RealmResults 过滤器查询
问题描述
我有一个领域数据库,其中一个字段postCategories
包含通过 JSON 从服务器获取的随机字符串类型数据。这些字符串值类似于以下内容:
Semester - I, Marketing, English Version, Short Question
B.Com., Semester - II, E-Commerce, English Version, Broad Question
Semester - III, Marketing, English Version, Short Question
Semester - IV, Company Law, Bengali Version, Short Question
.......
现在,我只想分别过滤postCategories
包含Semester - I
或Semester - II
或Semester - III
或Semester - IV
任何一个的 RealmResults。我应该怎么办?
我尝试了以下代码来查找postCategories
包含的所有数据Semester - I
:
RealmResults<RealmTitle> realmTitles;
realmTitles = realm.where(RealmTitle.class)
.contains("postCategories", "Semester - I").findAll();
但这给出了Semester - I
、Semester - II
和Semester - III
的所有数据Semester - IV
。
我可以找到如下临时解决方案。
realmTitles = realm.where(RealmTitle.class)
.contains("postCategories", "Semester - I")
.and().not()
.contains("postCategories", "Semester - II").findAll();
这是为了防止Semester - II
与结果一起添加。但这似乎不是一个好的解决方案。请帮助我找到更合适的解决方案。
谢谢你。任何帮助将不胜感激。
解决方案
要选择第一学期或第二学期或第三学期或第四学期,请尝试按模式过滤,即在一个帖子类别中不要有 2 个“学期 - I”:
realmTitles = realm
.where(RealmTitle.class)
.contains("postCategories", "Semester - I")
.and().not().like("postCategories", "*Semester - I*Semester - *")
.findAll();
如果排除第四学期很重要
realmTitles = realm
.where(RealmTitle.class)
.contains("postCategories", "Semester - I")
.and().not().like("postCategories", "*Semester - I*Semester - *")
.and().not().contains("postCategories", "Semester - IV")
.findAll();
如果你只想拥有那些只有第一学期的人:
realmTitles = realm
.where(RealmTitle.class)
.like("postCategories", "*Semester - I")
.or().contains("postCategories", "Semester - I,")
.and().not().like("postCategories", "*Semester - *Semester - *")
.findAll();
推荐阅读
- python - 试图查找是否存在某些文本
- nativescript - 如何在 nativescript-plugin-firebase 中更新 Facebook SDK?
- c# - 以编程方式编辑 WinForms ListViewItem
- php - 根据以前的订单数量在 magento 2 中创建自定义销售规则
- html - 如何在不破坏比例的情况下使所有图像高度相同
- c# - 如何在端口 5003 上运行 asp .net core api?
- android - 我在互联网上遇到了类似的问题,我已经尝试了几个小时。但我应付不来。如果您有帮助,我将不胜感激
- android - 如何从 Maybe 返回 Maybe 或 result
- node.js - 无法读取未定义的属性“删除”
- c# - 在模型类方法 Asp.Net 中获取输入