この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

WHERE

デフォルトでは、オブジェクトに対する SOSL クエリを実行すると、アーカイブされた行を含めユーザに表示されているすべての行が取得されます。検索を限定するために、特定の項目値で検索結果を絞り込むことができます。

conditionExpression

WHERE 句の conditionExpression では次の構文を使用します。

1fieldExpression [logicalOperator fieldExpression2 ... ]

論理演算子を使用して、複数の項目式を条件式に追加できます。

SOSL FIND ステートメントの条件式は、これらの例では太字で表示されます。
  • FIND {test} RETURNING Account (id WHERE createddate = THIS_FISCAL_QUARTER)
  • FIND {test} RETURNING Account (id WHERE cf__c includes('AAA'))
fieldExpression が評価される順序を定義するには、括弧を使用します。演算子をネストするときは、括弧を指定する必要があります。ただし、同じ種別の複数の演算子はネストする必要がありません。次の例の式は、fieldExpression1true で、fieldExpression2 または fieldExpression3 のいずれかが true の場合、true です。
1fieldExpression1 AND (fieldExpression2 OR fieldExpression3)
ただし、次の式は、fieldExpression3true であるか、fieldExpression1fieldExpression2 の両方が true の場合、true です。
1(fieldExpression1 AND fieldExpression2) OR fieldExpression3

fieldExpression

fieldExpression では次の構文を使用します。

1fieldName comparisonOperator value

各項目は次のとおりです。

構文 説明
fieldName 指定したオブジェクト内の項目の名前。名前の前後に一重または二重引用符を使用すると、エラーが発生します。項目に対する参照レベル以上の権限が必要です。ロングテキストエリア項目、暗号化されたデータ項目、または Base64 で符号化された項目以外の項目を指定できます。名前は、fieldList に含まれている項目である必要はありません。
comparisonOperator 値を比較する演算子。=<=INLIKE などがあります。演算子は、ほとんどの項目では大文字と小文字が区別されません。ただし、大文字と小文字が区別される項目では、大文字と小文字が区別されます。
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 です。指定した value のテキスト文字列は、一重引用符で囲む必要があります。

LIKE 演算子は、文字列項目でのみサポートされます。この演算子は、部分的なテキスト文字列を照合するメカニズムを提供し、次の使用がサポートされます。

  • % および _ ワイルドカード。
    • % ワイルドカードは、0 個以上の文字に一致します。
    • _ ワイルドカードは、1 文字のみに一致します。
  • 特殊文字 % または _ のエスケープ。

特殊文字をエスケープする場合を除き、検索ではバックスラッシュ (\) 文字を使用しないでください。「引用符で囲まれた文字列のエスケープシーケンス」を参照してください。

メモ

次のクエリ例は Appleton、Apple、Appl と一致しますが、Bappl とは一致しません。
1SELECT AccountId, FirstName, lastname
2FROM Contact
3WHERE lastname LIKE 'appl%'
IN IN 値が WHERE 句の値のいずれかに等しい場合、式は true です。IN の文字列値は括弧の中に入れて、一重引用符で囲む必要があります。

IN を使用して、同じオブジェクトの別の項目に、指定された値のセットがある項目の値を照会できます。次に例を示します。

1SELECT Name FROM Account
2WHERE BillingState IN ('California', 'New York')

INNOT IN は、ID (主キー) 項目または参照 (外部キー) 項目を照会するときに、準結合および反結合でも使用できます。

NOT IN NOT IN 値が WHERE 句の値と等しくない場合、式は true です。NOT IN の文字列値は括弧の中に入れて、一重引用符で囲む必要があります。次に例を示します。
1SELECT Name FROM Account
2WHERE BillingState NOT IN ('California', 'New York')

論理演算子の NOT はこの比較演算子とは無関係です。

メモ

INCLUDES EXCLUDES 複数選択リストにのみ適用されます。「複数選択リストのクエリ」を参照してください。

論理演算子

次の表に、fieldExpression 構文で使用される論理演算子の値を示します。

演算子 構文 説明
AND fieldExpressionX AND fieldExpressionY fieldExpressionXfieldExpressionY の両方が true の場合に true
OR fieldExpressionX OR fieldExpressionY fieldExpressionX または fieldExpressionY のいずれかが true の場合に true

OR を使用する WHERE 句では、レコードの外部キーの値が null の場合でも、レコードが返されます。

1SELECT Id FROM Contact WHERE LastName = 'Young' or Account.Name = 'Quarry'
NOT not fieldExpressionX fieldExpressionX が false の場合に true

この論理演算子とは異なる比較演算子 NOT IN もあります。

引用符で囲まれた文字列のエスケープシーケンス

SOSL で次のエスケープシーケンスを使用できます。

シーケンス 意味
\n または \N 改行
\r または \R 行頭復帰
\t または \T タブ
\b または \B バックスペース
\f または \F フォームフィード
\" 1 つの二重引用符文字
\' 1 つの一重引用符文字
\\ バックスラッシュ
LIKE 式のみ: \_ 1 つのアンダースコア文字 ( _ )
LIKE 式のみ: \% 1 つのパーセント記号文字 ( % )
\uXXXX XXXX がコードの Unicode 文字 (たとえば、\u00e9 は é の文字を表します)。

その他のコンテキストでバックスラッシュ文字を使用すると、エラーが発生します。

WHERE 句の例

1FIND {test}
2    RETURNING Account (id WHERE createddate = THIS_FISCAL_QUARTER)
1FIND {test}
2    RETURNING Account (id WHERE cf__c includes('AAA'))
1FIND {test}
2    RETURNING Account (id), User(Field1,Field2 WHERE Field1 = 'test' order by id ASC, Name DESC)
1FIND {test} IN ALL FIELDS
2    RETURNING Contact(Salutation, FirstName, LastName, AccountId WHERE Name = 'test'),
3        User(FirstName, LastName),
4        Account(id WHERE BillingState IN ('California', 'New York'))
1FIND {test}
2    RETURNING Account (id WHERE (Name = 'New Account')
3        or (Id = '001z00000008Vq7'
4        and Name = 'Account Insert Test')
5        or (NumberOfEmployees < 100 or NumberOfEmployees = null)
6        ORDER BY NumberOfEmployees)
ID で Salesforce ナレッジの記事を検索する
1FIND {tourism}
2    RETURNING KnowledgeArticleVersion (Id, Title WHERE id = 'ka0D0000000025eIAA')
ID で Salesforce ナレッジの複数の記事を検索する
1FIND {tourism}
2    RETURNING KnowledgeArticleVersion
3        (Id, Title WHERE id IN ('ka0D0000000025eIAA', 'ka0D000000002HCIAY'))
緯度座標 37、経度座標 122 の場所から 500 マイル以内にある地理位置情報項目または住所項目が含まれているすべての My_Custom_Object__c オブジェクトの全項目で「San Francisco」を検索する
1FIND {San Francisco}
2    RETURNING My_Custom_Object__c (Id 
3        WHERE DISTANCE(My_Location_Field__c,GEOLOCATION(37,122),'mi') < 100)