+ Start a Discussion
kstukudakstukuda 

SOQLでのロングテキストエリア項目とLike演算子について

お世話になります。 

 

現在作成しているコードの中でSOQLを使ってレコードを抽出する処理が有ります。

そのなかのSOQLでwhere句でロングテキストエリアを使った項目に対しLikeで抽出をかけると

以下の様なエラーが出力されます 

 

例: SELECT test__c From T_Test__c WHERE longtext__c Like 'aa%' 

 ↓

ERROR

field '****__c' can not be filtered in query call

 

 

これはSalesforceの仕様ということで良いのでしょうか? 

 

Best Answer chosen by Admin (Salesforce Developers) 
kstukudakstukuda

ありがとうございます。

やはりできないんですね。

別の方法を検討します。 :smileyhappy:

All Answers

TierraTierra

ロングテキストエリアはSOQLの条件句で使用できないですね。APIドキュメントのAPI Data Types and Salesforce.com Field Typesに下記のように記載されています。

 

Unlike string fields, textarea fields cannot be specified in the WHERE clause of a queryString of a query() call.

kstukudakstukuda

ありがとうございます。

やはりできないんですね。

別の方法を検討します。 :smileyhappy:

This was selected as the best answer
kkurahashikkurahashi

ずいぶん以前のご質問ですが…その後解決されたでしょうか。

 

実は私も同じ問題に直面してしまい、このスレにたどり着きました。

 

どうしてもSELECT文でなければ困る、ということでなければ、FINDをお使いになられては如何でしょうか。

 

String strKey = "質問";
List<List<SObject>> arrayOfArray = [FIND :strKey IN ALL FIELDS RETURNING Account, Contact, Lead];
List<Account> arrayOfAccount = ((List<Account>)arrayOfArray[0];