iOS SDK iOS SDK v2.0 APPENDIX (iOS v2.0)
最終更新日 2015-9-11

クエリの使い方

クエリ(ABQuery)を利用することで、オブジェクトの取得や削除時に指定可能な検索条件を組み立てることができます。
検索条件に含めることができる条件式の詳細については「データ検索における条件式」を参照ください。

色々な検索条件式

以下に、RDBMS/NoSQL と対比させた実装例を示します。

クエリオブジェクトを生成する

ユーザ定義クラスからクエリオブジェクトを生成する

データ件数を取得する

特定フィールドのみ選択する

フィールド有無で絞り込む

TRUE / FALSE で絞り込む

NULL / 非NULL で絞り込む

等号(=)比較で絞り込む

不等号(<, <=, >, >=)比較で絞り込む

数値範囲で絞り込む

値リストとの比較で絞り込む

前方一致検索で絞り込む

後方一致検索で絞り込む

文字列比較で絞り込む

円範囲検索で絞り込む

矩形範囲検索で絞り込む

多角形範囲検索で絞り込む

抽出結果をソートする

抽出件数を制限する

抽出開始位置を頭出しする

ネストしたフィールドで絞り込む

複合条件で絞り込む

条件式の連結(AND, OR)について

ABQuery には、条件式の連結に ANDOR の2種類の連結方法が用意されています。
AND や OR の意味は SQL と同じですが、その挙動はそれとは若干異なります。

例として、以下のように4つの条件を連結した場合、

ABQuery 内部では、論理的に以下のような条件式が組み立てられます。

この挙動については、AND連結された条件は指定順や使用メソッドに関わらず全て1つのグループ(便宜上ANDグループと呼びます)に格納され、OR連結された条件が存在する場合はANDグループに対してOR連結される、と考えるのが理解し易いかと思います。

またこの他にOR連結に関しては、ネスト指定できない(bundle()メソッドを利用した場合も全てAND連結されます)という制限がある点にご注意ください。

上述の点を踏まえた上で、条件式の連結バリエーションを見ていきます。

単一条件を指定する

以下は、すべて等価です。

複数の条件を AND 連結する

複数の条件を AND 連結する場合は、以下のように記述することができます。

複数の条件を OR 連結する

複数の条件を OR 連結する場合は、以下のように記述することができます。

単一条件と複合条件を OR 連結する

ドキュメント誤りのため本クエリは利用できません。 (2015/09/11)

以下は、単一条件と複合条件を OR 連結する例です。
例のように、bundle()メソッド内で追加した条件は SQL で表現すると括弧()によりグルーピングされた条件に相当します。
尚、bundle()メソッド内に列挙した条件は、すべて AND 連結される点にご注意ください。

複合条件と複合条件を OR 連結する

ドキュメント誤りのため本クエリは利用できません。 (2015/09/11)

以下は、複合条件と複合条件を OR 連結する例です。
例のように、bundle()メソッド内で追加した条件は SQL で表現すると括弧()によりグルーピングされた条件に相当します。
尚、bundle()メソッド内に列挙した条件は、すべて AND 連結される点にご注意ください。

AND 連結と OR 連結を組み合わせる

ドキュメント誤りのため本クエリは利用できません。 (2015/09/11)

以下のようなクエリを実現したい場合、どのようにしたらよいでしょうか。

ABQuery では、以下のように実現することができます。

関連ドキュメント