sql >> Databáze >  >> RDS >> PostgreSQL

Chyba při použití shody vzorů, která není podobná žádné v PostgreSQL

Obvykle používám shodu se vzorem pomocí klíčového slova „není v“.

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

Pak jsem zkusil použít klíčové slovo „ne jako žádné“

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

Myslím, že výsledek bude stejný. Ale po spuštění jsou výsledky jiné. Zajímalo by mě, proč se výsledky liší, a poté, co zjistím, jak klíčové slovo funguje, se vrátí true, pokud je splněn jeden z prvků. Takže pokud je prvek A porovnán s klíčovým slovem ne jako žádné, bude to pravda, protože splňuje kritéria, nikoli jeden z prvků v poli, konkrétně B. A naopak. Zatímco požadovaným výsledkem není ani prvek A, ani prvek B. K zodpovězení tohoto problému se používá klíčové slovo „ne jako všechny“.

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

Odkaz
stackoverflow


  1. Jak vygeneruji vnořené objekty json pomocí nativních funkcí json mysql?

  2. Zálohy databáze – porovnání MariaDB Mariabackup a Percona Xtrabackup

  3. Funkce MySQL LN() – Vrátí přirozený logaritmus čísla

  4. Jak psát složité dotazy v SQL