function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
TShinchiTShinchi 

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を使わないようにするとエラーは生じなくなるのですが、当然目的のレコードは取れません。

この問題に関して、解決策があれば、ご教示いただければと思います。

 

よろしくお願いします。

 

n-hayashin-hayashi

SOQLでは、ID型の項目に対してLIKEでの検索はできません。

数式(テキスト型)にWhatIdをコピーすることで検索可能です。

(その場合、IDすべてをコピーするのではなく、prefixのみのコピーとしても良いかもしれません)

TShinchiTShinchi

ご回答ありがとうございます。

 

数式にWhatIdをコピーする方法で対応できました。