Re: Question - Query based on WHERE OR - Mailing list pgsql-general

From John D. Burger
Subject Re: Question - Query based on WHERE OR
Date
Msg-id 34BFD047-9BE6-4841-A174-01B410A6F436@mitre.org
Whole thread Raw
In response to Question - Query based on WHERE OR  ("Mike Poe" <trolling4dollars@gmail.com>)
List pgsql-general
Mike Poe wrote:

> SELECT foo, baz, bar FROM public.table WHERE lastname ~*
> '$lastname' OR ssn='$ssn'"
>
> I need to leave the last name a wildcard in case someone enters a
> partial name, lower case / upper case, etc.
> I want the SSN to match exactly if they search by that.
> The way it's written, if I enter nothing for the last name, it
> returns all rows, regardless of what I enter for the ssn.
> I understand why it happens, but what can I do to return the
> desired results?

How about:

SELECT foo, baz, bar FROM public.table
   WHERE ('$lastname' != '' and lastname ~* '$lastname') OR ssn='$ssn'";

Or perhaps some more general condition for "empty" lastname parameters.

- John Burger
   MITRE

pgsql-general by date:

Previous
From: "Simon Riggs"
Date:
Subject: Re: pg_standby testing notes
Next
From: Andrew Dunstan
Date:
Subject: Re: [HACKERS] Checkpoint request failed on version 8.2.1.