Re: Like Command returning wrong result set

Christophe Pettus <xof@thebuild.com>

From: Christophe Pettus <xof@thebuild.com>
To: "Tchouante, Merlin" <mtchouan@umaryland.edu>
Cc: "pgsql-sql@postgresql.org" <pgsql-sql@postgresql.org>
Date: 2021-08-05T14:05:13Z
Lists: pgsql-sql

> On Aug 5, 2021, at 07:00, Tchouante, Merlin <mtchouan@umaryland.edu> wrote:
> 
> Hello group,
>  
> I’m writing a script and a bit confused on the results with the like command.
>  
> gm.title like 'CP_%'
>  
> The above command gives me records with titles like CP_40, CP_2, CP_23, etc.
>  
> gm.title like '%_CT'

Somewhat confusingly, '_' is the single-character wildcard for SQL's LIKE operation:

xof=# SELECT 'A' LIKE '_';
 ?column? 
----------
 t
(1 row)

You can escape it to search for it literally:

xof=# SELECT '_' LIKE '\_';
 ?column? 
----------
 t
(1 row)

xof=# SELECT 'A' LIKE '\_';
 ?column? 
----------
 f
(1 row)