Re: Help with a not match

From: "Campbell, Lance" <lance(at)illinois(dot)edu>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: pgsql-sql <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Help with a not match
Date: 2018-11-09 17:59:07
Message-ID: F155F457-310F-41FC-B3F5-9544D22A5C77@illinois.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Very helpful. I am almost there.

I created this SQL:

SELECT regexp_matches(content, '/(?!files/'||id||'/)(files/\d+/)/', 'g') FROM tablea

I get no matches. My guess is I am close but slightly off on the syntax.

Lance

On 11/9/18, 11:22 AM, "David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> wrote:

The convention on these lists is to bottom-post and trim unnecessary context.

On Fri, Nov 9, 2018 at 10:08 AM Campbell, Lance <lance(at)illinois(dot)edu> wrote:
> The SQL you provided is the opposite of what I was looking for. Thanks though.

See if these help you:

SELECT * FROM regexp_matches('/123/ /456/', '/(?!123)(\d+)/', 'g');
SELECT * FROM regexp_matches('/123/', '/(?!123)(\d+)/', 'g');
SELECT * FROM regexp_matches('/456/', '/(?!123)(\d+)/', 'g');

Your main problem is the scenario where the desired string does exist
but then others that are unexpected exist as well. Without that its
as simple as locating ones with the correct string and then negating
the result. You may find you want to use multiple tests and combine
them with AND/OR.

David J.

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message David G. Johnston 2018-11-09 18:17:04 Re: Help with a not match
Previous Message David G. Johnston 2018-11-09 17:22:38 Re: Help with a not match