Comprendre les structures IN et ANY
Dans PostgreSQL, IN et ANY sont tous deux des constructions qui effectuent des comparaisons d'ensembles pour déterminer si une valeur existe dans un ensemble.
Équivalence logique
Logiquement, IN équivaut à = ANY. Cependant, leur syntaxe et leurs fonctionnalités diffèrent.
Variations grammaticales
IN et ANY ont chacun deux variantes de syntaxe :
Différences fonctionnelles
AVANTAGES DE TOUT
ANY offre une plus grande flexibilité car il peut être combiné avec différents opérateurs, dont =. Par exemple :
<code class="language-sql">SELECT 'foo' LIKE ANY('{FOO,bar,%oo%}');</code>
Échelle et performances
Pour un grand nombre de valeurs, l'utilisation d'ensembles pour IN et ANY peut améliorer les performances.
Inverser et exclure
Pour rechercher des lignes dont les valeurs ne sont pas dans le tableau donné :
<code class="language-sql">SELECT * FROM tbl WHERE id <> ALL (ARRAY[1, 2]);</code>
Toutes les expressions du bloc de code ci-dessus sont équivalentes et excluront les lignes avec les valeurs d'identifiant 1 et 2.
Inclusion des valeurs NULL
Par défaut, les lignes avec l'identifiant NULL seront exclues. Pour les inclure, utilisez l'expression suivante :
<code class="language-sql">SELECT * FROM tbl WHERE (id = ANY ('{1, 2}')) IS NOT TRUE;</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!