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

SOQL および SOSL クエリ

ステートメントを角括弧で囲むことによって、Apex の Salesforce オブジェクトクエリ言語 (SOQL) または Salesforce オブジェクト検索言語 (SOSL) ステートメントをその場で評価することができます。

SOQL のステートメント

SOQL ステートメントは、sObjects のリスト、単一 sObject、または count メソッドクエリの Integer を評価します。

たとえば、Acme という取引先のリストを取得したとします。
1List<Account> aa = [SELECT Id, Name FROM Account WHERE Name = 'Acme'];
このリストから各要素にアクセスできます。
1if (!aa.isEmpty()) {
2   // Execute commands
3}
既存のオブジェクトの SOQL クエリから新しいオブジェクトを作成することもできます。次の例では、従業員数が 10 人を超える最初の取引先の新しい取引先責任者を作成します。
1Contact c = new Contact(Account = [SELECT Name FROM Account 
2    WHERE NumberOfEmployees > 10 LIMIT 1]);
3c.FirstName = 'James';
4c.LastName = 'Yoyce';
新規作成したオブジェクトでは、設定する必要があるその項目に null 値が入力されます。
count メソッドを使用して、クエリによって返される行数を返すことができます。次の例では、姓が Weissman の取引先責任者の合計数を返します。
1Integer i = [SELECT COUNT() FROM Contact WHERE LastName = 'Weissman'];
次の標準的な演算を使用して、結果を���理することもできます。
1Integer j = 5 * [SELECT COUNT() FROM Account];

SOQL クエリを実行するときに、SOQL の制限が適用されます。「実行ガバナと制限」を参照してください。

SOQL クエリの構文の詳細は、『Salesforce SOQL および SOSL リファレンス』を参照してください。

SOSL のステートメント

SOSL は、sObject リストの一覧に対して評価を行います。各リストには特定の sObject 型の検索結果が含まれます。結果リストは必ず、SOSL クエリで指定された順序で返されます。SOSL クエリが指定された sObject 型のレコードを返さない場合、検索結果には、その sObject の空のリストが返されます。

たとえば、次のように語句の対応付けで始まる取引先、取引先責任者、商談、およびリードのリストを返すことができます。
1List<List<SObject>> searchList = [FIND 'map*' IN ALL FIELDS RETURNING Account (Id, Name), Contact, Opportunity, Lead];
Apex の FIND 句の構文は、SOAP API および REST API の FIND 句の構文と異なります。
  • Apex の場合、FIND 句の値は単一引用符で区画されます。次に例を示します。
    1FIND 'map*' IN ALL FIELDS RETURNING Account (Id, Name), Contact, Opportunity, Lead

    メモ

  • API の場合、FIND 句の値は中括弧で区画されます。次に例を示します。
    1FIND {map*} IN ALL FIELDS RETURNING Account (Id, Name), Contact, Opportunity, Lead

システムモードで実行される Apex では、IN ALL FIELDS を使用して一致をスキャンする際に、項目レベルセキュリティが無視されます。

メモ

searchList で、返された各オブジェクトの配列を作成できます。
1Account [] accounts = ((List<Account>)searchList[0]);
2Contact [] contacts = ((List<Contact>)searchList[1]);
3Opportunity [] opportunities = ((List<Opportunity>)searchList[2]);
4Lead [] leads = ((List<Lead>)searchList[3]);

SOSL クエリを実行するときに、SOSL の制限が適用されます。「実行ガバナと制限」を参照してください。

SOSL クエリの構文の詳細は、『Salesforce SOQL および SOSL リファレンス』を参照してください。