De UPDATE
zoekopdracht die u weergeeft is precies hetzelfde als:
UPDATE fromemailaddress f
SET call = true
FROM (
SELECT fromemailaddress
FROM email
WHERE subject ILIKE '%tester%'
) e
WHERE e.fromemailaddress = f.fromemailaddress;
subject ILIKE '%tester%'
is een sneller equivalent voor subject ~ 'tester'
. Details voor LIKE
, ILIKE
en reguliere expressie-overeenkomst (~
) in de handleiding
of in dit gerelateerde antwoord op dba.SE:
En effectief hetzelfde als:
UPDATE fromemailaddress f
SET call = true
WHERE EXISTS (
SELECT 1
FROM email e
WHERE e.fromemailaddress = f.fromemailaddress
AND e.subject ILIKE '%tester%'
);
Gebruik dit in plaats daarvan.
Als er meerdere rijen in tabel moeten staan email
met hetzelfde fromemailaddress
overeenkomend met een rij in fromemailaddress
, dan voert dit formulier slechts één uit update per rij, in tegenstelling tot je ongelukkige origineel.
Laat u niet verwarren door het feit dat fromemailaddress
wordt hier gebruikt als kolom en als tabelnaam.
Lees de handleiding zorgvuldig hier en hier . In het bijzonder dit stukje: