Reputation: 65
I have this behavior in PostgreSQL 9.3:
-- (1) this "doesn't" work
select 't\om' like '%t\om%'
-- result = false
-- (2) this works
select 't/om' like '%t/om%'
-- result = true
Why is the (1) query result false? What is the best way to get true in (1) query?
Upvotes: 3
Views: 2864
Reputation:
The \
has no special meaning in SQL except inside the condition for the LIKE
operator where it can be used to escape the wildcard characters.
But you can define a different escape character for LIKE which then makes the \
a "normal" character:
select 't\om' like '%t\om%' escape '#';
edit
As Sunrelax has commented, you can also use an empty string as the "escape" sequence:
select 't\om' like '%t\om%' escape '';
Upvotes: 6
Reputation: 12247
\
is an escape sequence, so you need to escape it, too:
select 't\om' like '%t\\om%';
There is also a configuration option you can set. See Escaping backslash in Postgresql
Upvotes: 2