1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Android] Realmで部分一致検索、前方一致検索、後方一致検索をしたい。

Last updated at Posted at 2021-07-02

はじめに

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 -比較する値。

参考資料

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?