The situation is similar to those described above when a column is compared using the LIKE operator to a parameter whose value is unknown in advance (dynamic parameter, join column, and the like).
In this situation, the LIKE predicate is likewise transformed into three predicates: one LIKE predicate, one predicate using the >= operator, and one predicate using the < operator. For example,
country LIKE ?
is transformed into
country LIKE ? AND country >= InternallyGeneratedParameter AND country < InternallyGeneratedParameter
where the InternallyGeneratedParameters are calculated at the beginning of execution based on the value of the parameter.
(country || '') LIKE ?