whereLike method
Adds a LIKE condition to the query.
field is the column to match.
pattern is the SQL pattern (supports % as wildcard).
caseSensitive determines if the match is case-sensitive.
escape determines if special characters in the pattern are escaped.
Implementation
QueryBuilder whereLike(String field, String pattern,
{bool caseSensitive = false, bool escape = true}) {
final paramName = 'p${_paramIndex++}';
final processedPattern = escape ? _escapeLike(pattern) : pattern;
if (DB.driver == DBDriver.postgres) {
final sql = caseSensitive
? '$field LIKE :$paramName'
: '$field ILIKE :$paramName';
_wheres.add(sql);
} else {
final sql =
caseSensitive ? '$field LIKE ?' : 'LOWER($field) LIKE LOWER(?)';
_wheres.add(sql);
}
_bindings[paramName] = processedPattern;
return this;
}