はじめに
Realmでのデータの検索時、EqualToしか知らなくて、検索がとてもシビアになってしまっていませんか?
検索の幅を広げるためにも、様々な検索の仕方をまとめてみました。
今回は文字型だけ集めてみました。
検索方法
一致検索
realm.where(データクラス::class.java)
.equalTo("フィールド名",word)
.findAll()
引数:
fieldName -比較するフィールド。
value -比較する値。
##非一致検索
realm.where(データクラス::class.java)
.notEqualTo("フィールド名",word)
.findAll()
引数:
fieldName -比較するフィールド。
value -比較する値。
部分一致検索
realm.where(データクラス::class.java)
.contains("フィールド名",word)
.findAll()
引数:
fieldName -比較するフィールド。
value -比較する値。
前方一致検索
realm.where(データクラス::class.java)
.beginWith("フィールド名",word)
.findAll()
引数:
fieldName -比較するフィールド。
value -比較する値。
後方一致検索
realm.where(データクラス::class.java)
.extendsWith("フィールド名",word)
.findAll()
引数:
fieldName -比較するフィールド。
value -比較する値。
アンド検索
.and()の前後にある両方の条件に満たすものだけを集める物
realm.where(データクラス::class.java)
.contains("フィールド名",word)
.and()
.contains("フィールド名",word)
.findAll()
引数:
fieldName -比較するフィールド。
value -比較する値。
オア検索
.or()の前後にある両方の条件に少なくとも1つは満たすものを集める
realm.where(データクラス::class.java)
.contains("フィールド名",word)
.or()
.contains("フィールド名",word)
.findAll()
引数:
fieldName -比較するフィールド。
value -比較する値。
参考資料