How can you find a literal percent sign (%) in PostgreSQL using a LIKE query?
You can try like this:
SELECT * FROM my_table WHERE my_column LIKE '%\%%' ESCAPE '\';
Format
<like predicate> ::= <match value> [ NOT ] LIKE <pattern> [ ESCAPE <escape character> ] <match value> ::= <character value expression> <pattern> ::= <character value expression> <escape character> ::= <character value expression>
You have to escape the literal % sign. By default the escape character is the backslash:
SELECT * FROM my_table WHERE my_column LIKE '%\%';
In this case the first %
sign matches any starting sequence in my_column
. The remaining \%
are interpreted as a literal % character. The combination is therefore: match anything that ends in a % character.
I ended up using regular expressions:
select * from my_table where my_column ~ '%$';
However, I'd still like to know if it's possible using the LIKE
operator/comparison.