“like operator only valid on string field” exception occurs if the LIKE operator in SOQL is used again non-string fields.
In SOQL, the LIKE operator is supported for string fields only. So, we cannot use it against any other field data types.
Example:
String sql = ‘Select Name From Account WHERE Name LIKE ‘%’ + searchKeyword + ‘%”;
(or)
List<Contact> listCon = [SELECT Id, FirstName FROM Contact WHERE FirstName LIKE ‘%test%’];
system.debug(‘List contacts are ‘ + listCon);
String sql = ‘Select Name From Account WHERE Name LIKE ‘%’ + searchKeyword + ‘%”;
where searchKeyword is an Apex variable.
(or)
List<Contact> listCon = [SELECT Id, FirstName FROM Contact WHERE FirstName LIKE ‘%test%’];
system.debug(‘List contacts are ‘ + listCon);