sql >> Database >  >> RDS >> Mysql

Evaluatie van veelvouden 'IN' Expressies in 'WHERE'-clausules in mysql

Deze zoekopdracht retourneert rijen, waarbij b is ofwel 5 of 7 , EN c is 4 .

Wat bedoel je met "evaluatie in paren?"

Bijwerken:

Ik zal nog een rij aan het voorbeeld toevoegen:

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

Als u de hele sets wilt matchen, kunt u deze syntaxis gebruiken:

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

Dit betekent:"retourneer alle rijen waar b is 2 en c is 3 tegelijkertijd, OF b is 7 en с is 9 tegelijkertijd."

In het bovenstaande voorbeeld retourneert deze query rijen 1 en 3

Maar als je deze query andersom schrijft, als volgt:

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

, betekent dit "alle rijen retourneren waar b is ofwel 2 of 7 , EN c is ofwel 3 of 9 ).

Dit retourneert rijen 1 , 3 en 5 , sinds rij 5 voldoet aan de voorwaarde voor de tweede zoekopdracht, maar niet voor de eerste.



  1. 2PL, rigoureus versus strikt model, is er enig voordeel?

  2. LEFT() vs SUBSTRING() in SQL Server:wat is het verschil?

  3. Parameters doorgeven aan MySQL-script

  4. Unieke beperking met voorwaarden in MYSQL