WITH filteringExpression
レコードを項目値に基づいて絞り込むことができます。たとえば、カテゴリによって絞り込んだり、ユーザのプロファイルフィードで追跡されている変更を照会して取得したりするには、WITHfilteringExpression を使用します。この句 (省略可能) は、SOQL クエリの SELECT ステートメントに追加できます。
FROM 句で指定されたオブジェクトの項目のみをサポートする WHERE 句とは異なり、WITH ではその他の関連条件で絞り込めます。たとえば、WITH 句を使用して、1 つ以上のデータカテゴリグループの分類に基づいて記事を絞り込めます。WITH 句は、次の場合にのみ使用できます。
- カテゴリに基づいてレコードを絞り込む場合。「WITH DATA CATEGORY filteringExpression」を参照してください。
- ユーザプロファイルフィードで追跡されるレコードの変更を照会して取得する場合。『Salesforce のオブジェクトリファレンス』の「Custom Object__Feed」を参照してください。
- Apex コード内で照会する項目またはオブジェクトへのユーザのアクセス権限に基づいてレコードを絞り込む場合。『Apex 開発者ガイド』の「WITH SECURITY_ENFORCED を使用した SOQL クエリの絞り込み (ベータ)」を参照してください。
WITH が指定されている場合、クエリは絞り込み条件に一致し、ユーザが参照可能なレコードのみを返します。指定されていない場合、クエリは条件に一致し、ユーザが参照可能なレコードのみを返します。
以下のステートメントでは、絞り込み条件式が太字で強調表示されています。構文は次のセクションで説明します。
- SELECT Title FROM KnowledgeArticleVersion WHERE PublishStatus='online' WITH DATA CATEGORY Geography__c ABOVE usa__c
- SELECT Id FROM UserProfileFeed WITH UserId='005D0000001AamR' ORDER BY CreatedDate DESC, Id DESC LIMIT 20