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

Błąd podczas używania dopasowania wzorca innego niż w PostgreSQL

Zwykle używam dopasowania do wzorca za pomocą słowa kluczowego „nie w”.

SELECT kolom1 from tabel where kategori not in ('A', 'B')

Następnie próbowałem użyć słowa kluczowego „nie lubię żadnego”

SELECT kolom1 from tabel where kategori not like any (array['A', 'B'])

Myślę, że wynik będzie taki sam. Ale po uruchomieniu wyniki są różne. Jestem ciekaw, dlaczego wyniki są różne i po tym, jak dowiem się, jak działa słowo kluczowe any, zwróci true, jeśli jeden z elementów zostanie spełniony. Jeśli więc element A zostanie porównany ze słowem kluczowym not like any, będzie to prawda, ponieważ spełnia kryteria, a nie jeden z elementów tablicy, czyli B. I odwrotnie. Chociaż pożądanym wynikiem nie jest ani element A, ani element B. Aby odpowiedzieć na ten problem, używane jest słowo kluczowe „nie jak wszystkie”.

SELECT kolom1 from tabel where kategori not like all (array['A', 'B'])

Odniesienie
przepełnienie stosu


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres FOR LOOP

  2. Jak zmienić hasło użytkownika PostgreSQL?

  3. W obronie sar (i jak to skonfigurować)

  4. Jaki typ danych dla szerokości i długości geograficznej?

  5. Dodanie „serial” do istniejącej kolumny w Postgres