I try to only query lowercase results but LIKE is not case insensitive.
Here is an example:
SELECT
CITY
FROM
TARGETS
WHERE
CITY RLIKE '^b.*n$'
the result is
BOSTON
boston
I want to only keep the 'boston', but I don't know how to do it. I checked this old answer:
But, the statement CAST(CITY AS BINARY) RLIKE '^b.*n$' doesn't work in PostgreSQL.
RLIKEis used in MySQL. The regular expression match operator in Postgres is~. (Neither is standard SQL.)~is case-sensitive by default.~*is the case-insensitive variant.This gets you 'boston' but not 'Boston':
See:
You may have tripped over the double negative there, but "not case insensitive" (i.e. case-sensitive) is what you want. And it's also how
LIKEworks in Postgres (or standard SQL):If you want case-insensitive, use
ILIKEin Postgres.db<>fiddle here
But MySQL does it differently:
db<>fiddle here
See: