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

Évaluation des multiples expressions 'IN' dans les clauses 'WHERE' dans mysql

Cette requête renverra des lignes, où b est soit 5 ou 7 , ET c est 4 .

Qu'entendez-vous par "évaluation en binôme ?"

Mise à jour :

Je vais ajouter une ligne supplémentaire à l'exemple :

 +----------+----------+----------+
 |    PK    |     b    |     c    |
 +----------+----------+----------+
 |     1    |     2    |     3    |
 +----------+----------+----------+
 |     2    |     5    |     4    |
 +----------+----------+----------+
 |     3    |     7    |     9    |
 +----------+----------+----------+
 |     4    |     7    |     4    |
 +----------+----------+----------+
 |     5    |     2    |     9    |
 +----------+----------+----------+

Si vous souhaitez faire correspondre les ensembles entiers, vous pouvez utiliser cette syntaxe :

SELECT  *
FROM    table_name
WHERE   (b, c) IN ((2, 3), (7, 9))

Cela signifie :"renvoie toutes les lignes où b est 2 et c est 3 en même temps, OU b est 7 et с est 9 en même temps."

Dans l'exemple ci-dessus, cette requête renverra les lignes 1 et 3

Mais si vous réécrivez cette requête dans l'autre sens, comme ceci :

SELECT  *
FROM    table_name
WHERE   b IN (2, 7)
        AND c IN (3, 9)

, cela signifiera "retourner toutes les lignes où b est soit 2 ou 7 , ET c est soit 3 ou 9 ).

Cela renverra les lignes 1 , 3 et 5 , depuis la ligne 5 satisfait la condition pour la seconde requête mais pas pour la première.