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 人を超える最初の取引先の新しい取引先責任者を作成します。
新規作成したオブジェクトでは、設定する必要があるその項目に null 値が入力されます。
1Contact c = new Contact(Account = [SELECT Name FROM Account
2 WHERE NumberOfEmployees > 10 LIMIT 1]);
3c.FirstName = 'James';
4c.LastName = 'Yoyce';
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];
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 リファレンス』を参照してください。