複数選択リストで特定の値が含まれているデータを取得したい。
複数の値を含むデータを取得したい場合に、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記事