バインド変数とは
Apex内の変数をクエリ条件として使用したいときがある。
そんな時に便利なのがバインド変数。
SOQLやSOSLに変数値を使用することができる!
使用方法① Database.Quey()
まずString型でクエリを準備、クエリをDatabase.query()に渡す。
バインド変数は変数名の前に ':' をつけるだけ。
String bindValue = 'テスト';
String query = 'SELECT Id, Name FROM Account WHERE Name = :bindValue';
List<Account> accList = Database.query(query);
ただし、sObject型の変数.項目APIというやり方はだめらしい。
// sObject.項目API のやり方はうまくいかない
Account acc = new Account(Name = 'テスト');
String query = 'SELECT Id, Name FROM Account WHERE Name = :acc.Name'; // NG
List<Account> accList = Database.query(query);
使用方法② インラインSOQL
バインド変数の書き方は①と同じで変数の前にコロンをつけるのみ
String bindValue = 'テスト';
List<Account> accList = [SELECT Id, Name FROM Account WHERE Name = :bindValue]:
インラインSOQLの場合はsObject.項目APIのやり方でもOKみたいです。
何が違うのか私にはわかりません