PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgres SQL SELECT i UPDATE zachowują się inaczej

Użycie ~ sugeruje, że używasz Postgresa. Jeśli tak, te dwa zapytania robią bardzo różne rzeczy. W Postgresie nie uwzględniasz aktualizowanej tabeli w from klauzula.

Myślę więc, że chcesz:

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

Twoja wersja aktualizuje wszystkie wiersze w fromemailaddress ponieważ nie ma warunku łączącego fromemailaddress w update klauzula i fea w from klauzula.

Uwaga:left join jest niepotrzebne, ponieważ where klauzula i tak zamienia ją w sprzężenie wewnętrzne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pivot w Postgresql z oznaczeniami TRUE/FALSE

  2. Sterownik PostgreSQL 9.2 JDBC używa strefy czasowej klienta?

  3. Zakleszczenia w PostgreSQL podczas uruchamiania UPDATE

  4. problem z aliasem kolumny postgres

  5. postgresql:typ danych dla skrótu wiadomości md5?