PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Erreur lors de l'utilisation de la correspondance de modèle comme aucune dans PostgreSQL

Habituellement, j'utilise la correspondance de motifs en utilisant le mot-clé "pas dans".

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

Ensuite, j'ai essayé d'utiliser le mot-clé "pas comme tout"

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

Je pense que le résultat sera le même. Mais après l'exécution, les résultats sont différents. Je suis curieux de savoir pourquoi les résultats sont différents et après avoir découvert comment fonctionne n'importe quel mot-clé, il renverra vrai si l'un des éléments est rempli. Donc si l'élément A est comparé au mot-clé not like any, ce sera vrai car il répond aux critères, pas un des éléments du tableau, à savoir B. Et vice versa. Alors que le résultat recherché n'est ni l'élément A ni l'élément B. Pour répondre à ce problème, le mot-clé "pas comme tout" est utilisé.

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

Référence
débordement de pile