What’s the easiest way to match case insensitive text anywhere in a string?
For example, let’s say you’re a fruit company marketing executive and you want all records matching “orange”, including “navel oranges”, “Syracuse Orange,” “Orange is the New Black”, “The Real Housewives of Orange County”, “orange you glad I didn’t say banana”, “🍊” and so on.
Here’s a quick way to match case insensitive text.
Use ~*:
select *
from my_table
where item ~* 'orange';
The ~* operator searches for ‘orange’ anywhere in the string, thanks to the power of regular expressions.
Use like:
select *
from my_table
where item like '%orange%';
In MySQL, like is case insensitive and much faster than regexp (the MySQL equivalent of ~* in Postgres and Redshift). Add the % wildcard to both sides of ‘orange’ for a substring match.