· 

SOQLで複数選択リストの条件指定

複数選択リストで特定の値が含まれているデータを取得したい。

複数の値を含むデータを取得したい場合に、SOQLのWHERE句の中に「IN」を使用します。

 

ところが、対象の項目が複数選択リストの場合、「IN」の値と完全一致しているデータのみ取得できます。

 

 例}

  複数選択リスト項目

  フラグ [A;B;C]

  

     WHERE フラグ IN ('A')      取得できない

     WHERE フラグ IN ('A','B','C') 取得できない

     WHERE フラグ IN ('A;B;C')   取得できる

 

そこで複数選択リストのなかで特定の値が含まれているデータを取得したい場合は、

「INCLUDES」を使用します。

 

     WHERE フラグ INCLUDES ('A')   取得できる

     WHERE フラグ INCLUDES ('B')   取得できる

     WHERE フラグ INCLUDES ('A','C') 取得できる

     WHERE フラグ INCLUDES ('A','D') 取得できる

 

含めたくない値でデータを取得したい場合は、WHERE句に「EXCLUDES」と書けばOK。

 

ちなみに、「WHERE フラグ EXCLUDES ('A' , '')」のように「''」を追加すると、

Aが入ってるデータも取得できてしまうので要注意!!!(なんで!?)

 

参考:複数選択リストのクエリ

 

その他のSalesforce記事


VisualforceでcommandButtonにrerender属性を設定して、 oncompleteにコールバック処理を記載したら動作してくれない。
Visualforceで生成したPDFが、Google Chromeで表示されない
項目履歴管理をデータローダで取得しようとしたらエラーが発生した。