Syntaxe :
<operand> <comparison operator> ANY (<subquery>) <operand> IN (<subquery>) <operand> <comparison operator> SOME (<subquery>)
Le mot ANY
, qui doit suivre immédiatement
un opérateur de comparaison, signifie : ``retourne
TRUE
si la comparaison est
TRUE
pour UNE
des lignes
que la sous-requête retourne.'' Par exemple :
SELECT s1 FROM t1 WHERE s1 > ANY (SELECT s1 FROM t2);
Supposons qu'il y ait une ligne dans la table
t1
qui contienne {10}. L'expression est
TRUE
si la table t2
contient {21,14,7} car il y a une valeur de
t2
, 7, qui est inférieure à 10. Cette
expression est FALSE
si la table
t2
contient {20,10}, ou si la table
t2
est vide. L'expression est
UNKNOWN
si la table t2
contient
{NULL
,NULL
,NULL
}.
Le mot IN
est un alias de =
ANY
. Les deux commandes suivantes sont identiques :
SELECT s1 FROM t1 WHERE s1 = ANY (SELECT s1 FROM t2); SELECT s1 FROM t1 WHERE s1 IN (SELECT s1 FROM t2);
Le mot SOME
est un alias de
ANY
. Les deux commandes suivantes sont
identiques :
SELECT s1 FROM t1 WHERE s1 <> ANY (SELECT s1 FROM t2); SELECT s1 FROM t1 WHERE s1 <> SOME (SELECT s1 FROM t2);
L'utilisation du mot SOME
est rare, mais
les exemples ci-dessus montrent pourquoi il peut être utile.
En langage parlé, ``a n'est pas égal à aucun b'' signifie
pour la majorité des gens, ``il n'y a pas de b qui est égal
à a'' : ce n'est pas la signification de la syntaxe SQL. En
utilisant <> SOME
, vous pouvez vous
assurer que tout le monde comprend le véritable sens de la
commande.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.