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

WITH

レコードを項目値に基づいて絞り込むことができます。たとえば、カテゴリによって絞り込んだり、ユーザーのプロファイルフィードで追跡されている変更を照会して取得したりするには、WITH filteringExpression を使用します。この句 (省略可能) は、SOQL クエリの SELECT ステートメントに追加できます。

FROM 句で指定されたオブジェクトの項目のみをサポートする WHERE 句とは異なり、WITH ではその他の関連条件で絞り込めます。たとえば、WITH 句を使用して、1 つ以上のデータカテゴリグループの分類に基づいて記事を絞り込めます。WITH 句は、次の場合にのみ使用できます。

  • カテゴリに基づいてレコードを絞り込む場合。WITH DATA CATEGORYを参照してください。
  • ユーザープロファイルフィードで追跡されるレコードの変更を照会して取得する場合。『Salesforce のオブジェクトリファレンス』の「Custom Object__Feed」を参照してください。
  • Apex コード内で照会する項目またはオブジェクトへのユーザーアクセス権限に基づいてレコードを絞り込む場合。『Apex 開発者ガイド』「WITH SECURITY_ENFORCED を使用した SOQL クエリの絞り込み」を参照してください。
  • Apex データベース操作のユーザーモードアクセスを指定する場合。デフォルトでは、Apex コードはシステムモードで実行されます。つまり、コードを実行しているユーザーよりも非常に上位の権限で実行されます。Apex のセキュリティコンテキストを強化するために、WITH USER_MODE を使用することによってユーザーモードアクセスを指定できます。システムモードとは異なり、ユーザーモードでは実行ユーザーの項目レベルセキュリティ (FLS) とオブジェクト権限が考慮されます。ユーザーモードでは、共有ルールが常に適用されますが、システムモードではクラスの共有キーワードによって適用を制御できます。『Apex 開発者ガイド』「ユーザーモードでのデータベース操作 (ベータ)」を参照してください。

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