You need to sign in to do that
Don't have an account?

Like検索でSystem.QueryException: invalid operator on id fieldというエラーが出る
以下のように、WhatIdに対してLike検索を行なって、活動情報を取得しようとするのですが、「System.QueryException: invalid operator on id field」というSOQLのエラーが出ます。
String accountIdType = '001%';
String opportunityIdType = '006%';
soql1 = 'SELECT ID, ActivityDate FROM Event WHERE (WhatId Like :accountIdType OR WhatId Like:opportunityIdType) And Comments_Type__c = null AND ActivityDate != null AND ISDELETED = false ORDER BY ActivityDate DESC ';
「WhatId Like」の箇所を「WhatId =」とLikeを使わないようにするとエラーは生じなくなるのですが、当然目的のレコードは取れません。
この問題に関して、解決策があれば、ご教示いただければと思います。
よろしくお願いします。
SOQLでは、ID型の項目に対してLIKEでの検索はできません。
数式(テキスト型)にWhatIdをコピーすることで検索可能です。
(その場合、IDすべてをコピーするのではなく、prefixのみのコピーとしても良いかもしれません)
ご回答ありがとうございます。
数式にWhatIdをコピーする方法で対応できました。