PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres SQL SELECT und UPDATE verhalten sich unterschiedlich

Die Verwendung von ~ schlägt vor, dass Sie Postgres verwenden. Wenn dies der Fall ist, führen die beiden Abfragen sehr unterschiedliche Dinge aus. In Postgres fügen Sie die zu aktualisierende Tabelle nicht in from ein Klausel.

Also, ich denke, Sie wollen:

update fromemailaddress
    set call = true 
    from email
    where email.fromemailaddress = fromemailaddress.fromemailaddress and
          LOWER(email.subject) ~ 'tester';

Ihre Version aktualisiert alle Zeilen in fromemailaddress weil es keine Bedingung gibt, die fromemailaddress verbindet im update -Klausel und fea im from Klausel.

Beachten Sie auch:die left join ist unnötig, weil where -Klausel macht es trotzdem zu einem Inner Join.