Re: update only if single row

From: "tjk(at)tksoft(dot)com" <tjk(at)tksoft(dot)com>
To: fbax(at)execulink(dot)com (Frank Bax)
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: update only if single row
Date: 2000-04-07 22:42:01
Message-ID: 200004072242.PAA02410@uno.tksoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

It is supposed to update multiple rows.

It is supposed to update all rows which have an email
address matching the pattern ~* 'rvro', except rows
where there are other rows with the same email address.

Troy

>
>
> Except for one minor detail. It updates multiple rows!
>
> At 02:39 AM 4/07/00 -0700, you wrote:
> >Excellent solution.
> >
> >You can use oid as the unique attribute.
> >
> > UPDATE contact SET bounce = 1 WHERE email ~* 'rvro' AND email NOT IN
> > (SELECT c1.email FROM contact c1, contact c2
> > WHERE c1.oid != c2.oid AND c1.email = c2.email);
> >
> >Troy
> >>
> >> Hi
> >>
> >> FB> select * from contact where email ~* 'rvro';
> >> FB> if I get a single row in the result then I enter:
> >> FB> update contact set bounce=1 where email ~* 'rvro';
> >>
> >> FB> Can I combine this into a single SQL statement with the following
> >> FB> requirements:
> >> FB> 1) the update is only performed if a single row is selected
> >> FB> 2) I only enter the selection string ('rvro' in this case) once in the
> >> FB> command?
> >>
> >> Assume that pk is PRIMARY KEY (or UNIQUE attribute) of relation contact.
> >>
> >> UPDATE contact SET bounce = 1 WHERE email ~* 'rvro' AND NOT email IN
> >> (SELECT c1.email FROM contact c1, contact c2
> >> WHERE c1.pk != c2.pk AND c1.email = c2.email);
> >>
> >> LPK Station mailto:kl(at)84105(dot)aanet(dot)ru
>

Browse pgsql-sql by date

  From Date Subject
Next Message Hutton, Rob 2000-04-08 04:14:50 Transaction log
Previous Message Justin Long 2000-04-07 19:46:04 SQL syntax for updating tables