WHERE conditionExpression
デフォルトでは、オブジェクトに対する SOSL クエリを実行すると、アーカイブされた行を含めユーザに表示されているすべての行が取得されます。検索を限定するために、特定の項目値で検索結果を絞り込むことができます。
conditionExpression
WHERE 句の conditionExpression では次の構文を使用します。
論理演算子を使用して、複数の項目式を条件式に追加できます。
SOSL FIND ステートメントの条件式は、これらの例では太字で表示されます。
- FIND {test} RETURNING Account (id WHERE createddate = THIS_FISCAL_QUARTER)
- FIND {test} RETURNING Account (id WHERE cf__c includes('AAA'))
fieldExpression が評価される順序を定義するには、括弧を使用します。たとえば次の式は、fieldExpression1 が true で、fieldExpression2 または fieldExpression3 のいずれかが true の場合、true です。
ただし、次の式は、fieldExpression3 が true であるか、fieldExpression1 と fieldExpression2 の両方が true の場合、true です。
クライアントアプリケーションでは、演算子をネストするときに括弧を指定する必要があります。ただし、同じ種別の複数の演算子はネストする必要がありません。
fieldExpression
fieldExpression では次の構文を使用します。
各項目は次のとおりです。
| 構文 | 説明 |
|---|---|
| fieldName | 指定したオブジェクト内の項目の名前。名前の前後に一重または二重引用符を使用すると、エラーが発生します。項目に対する参照レベル以上の権限が必要です。ロングテキストエリア項目、暗号化されたデータ項目、または Base64 で符号化された項目以外の項目を指定できます。fieldList に含まれている項目である必要はありません。 |
| comparisonOperator | 値を比較する、大文字と小文字を区別しない演算子。 |
| value | fieldName の値と比較するために使用される値。指定した項目のデータ型と一致するデータ型の値を指定する必要があります。ネイティブ値を指定する必要があります。他の項目名または計算は指定できません。引用符が必要な場合は (たとえば、日付と数値には不要)、一重引用符を使用します。二重引用符を使用するとエラーになります。 |
比較演算子
次の表に、fieldExpression 構文で使用される comparisonOperator の値を示します。文字列の比較では、大文字と小文字は区別されません。
| 演算子 | 名前 | 説明 |
|---|---|---|
| = | Equals | 指定した fieldName の値が式で指定した value に一致する場合、式は true です。等号演算子を使用する文字列の比較の場合、大文字と小文字が区別される一意の項目は大文字と小文字が区別され、他のすべての項目は大文字と小文字が区別されません。 |
| != | Not equals | 指定した fieldName の値が指定した value に一致しない場合、式は true です。 |
| < | Less than | 指定した fieldName の値が指定した value より小さい場合、式は true です。 |
| <= | Less or equal | 指定した fieldName の値が指定した value 以下の場合、式は true です。 |
| > | Greater than | 指定した fieldName の値が指定した value より大きい場合、式は true です。 |
| >= | Greater or equal | 指定した fieldName の値が指定した value 以上の場合、式は true です。 |
| LIKE | Like | 指定した fieldName の値が指定した value のテキスト文字列の文字に一致する場合、式は true です。SOQL および SOSL の LIKE 演算子は、SQL の LIKE 演算子と似ています。部分的なテキスト文字列を照合するメカニズムを提供し、ワイルドカードの使用がサポートされます。
たとえば、次のクエリは Appleton、Apple、Appl と一致しますが、Bappl とは一致しません。
|
| IN | IN | 値が WHERE 句で指定された値のいずれかに等しい場合、式は true です。次に例を示します。 IN の値は括弧で囲む必要があります。文字列の値は一重引用符で囲む必要があります。 IN と NOT IN は、ID (主キー) 項目または参照 (外部キー) 項目を照会するときに、準結合および反結合でも使用できます。 |
| NOT IN | NOT IN | 値が WHERE 句で指定された値と等しくない場合、式は true です。次に例を示します。 NOT IN の値は括弧で囲む必要があり、文字列の値は一重引用符で囲む必要があります。 この比較演算子とは無関係ですが、論理演算子の NOT もあります。 |
| INCLUDES EXCLUDES | 複数選択リストにのみ適用されます。 |
論理演算子
次の表に、fieldExpression 構文で使用される論理演算子の値を示します。
| 演算子 | 構文 | 説明 |
|---|---|---|
| AND | fieldExpressionX AND fieldExpressionY | fieldExpressionX と fieldExpressionY の両方が true の場合に true。 |
| OR | fieldExpressionX OR fieldExpressionY |
fieldExpressionX または fieldExpressionY のいずれかが true の場合に true。 OR 句で外部キーの値を使用したリレーションクエリの動作は、API のバージョンによって異なります。OR を使用する WHERE 句でレコードの外部キーの値が null の場合、バージョン 13.0 以降ではレコードが返されますが、13.0 より前のバージョンではレコードが返されません。 |
| NOT | not fieldExpressionX |
fieldExpressionX が false の場合に true。 この論理演算子とは異なる比較演算子 NOT IN もあります。 |