Re: BUG #7835: The _ acts like a wildcard when used as '%_%' - Mailing list pgsql-bugs

From Jaime Casanova
Subject Re: BUG #7835: The _ acts like a wildcard when used as '%_%'
Date
Msg-id CAJKUy5i3D78MeYLFUfmditpo7n3TXYM1fVci3=oahy_YBDRR0g@mail.gmail.com
Whole thread Raw
In response to BUG #7835: The _ acts like a wildcard when used as '%_%'  (elliott.groszek@navy.mil)
List pgsql-bugs
On Tue, Jan 29, 2013 at 12:20 PM,  <elliott.groszek@navy.mil> wrote:
> The following bug has been logged on the website:
>
> Bug reference:      7835
> Logged by:          Elliott Groszek
> Email address:      elliott.groszek@navy.mil
> PostgreSQL version: 9.0.11
> Operating system:   Linux
> Description:
>
> Using the _ (underscore) in a wildcard query accesses values with - (dash=
)
> as well.  This results in unexpected behaviors when some data values cont=
ain
> the underscore and some data values contain the dash.
>

i guess you are using a LIKE expression. And in like both % and _ are
wildcards, as documented in:
http://www.postgresql.org/docs/9.2/static/functions-matching.html#FUNCTIONS=
-LIKE
And AFAIU, mandated by SQL Standard

"An underscore (_) in pattern stands for (matches) any single
character; a percent sign (%) matches any sequence of zero or more
characters."

if you only want to show those that contains an underscore (supressing
its wildcard behaviour) you need to use a escape character:

col LIKE '%\_%'

--
Jaime Casanova         www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitaci=F3n
Phone: +593 4 5107566         Cell: +593 987171157

pgsql-bugs by date:

Previous
From: elliott.groszek@navy.mil
Date:
Subject: BUG #7835: The _ acts like a wildcard when used as '%_%'
Next
From: Jeff Janes
Date:
Subject: Re: Re: BUG #7748: "drop owned by" fails with error message: "unrecognized object class: 1262"