sql >> Database teknologi >  >> RDS >> Mysql

Evaluering af multipla 'IN'-udtryk i 'WHERE'-sætninger i mysql

Denne forespørgsel returnerer rækker, hvor b er enten 5 eller 7 , OG c er 4 .

Hvad mener du med "evaluering i par?"

Opdatering:

Jeg tilføjer en række mere til prøven:

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

Hvis du vil matche hele sætene, kan du bruge denne syntaks:

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

Det betyder:"returner alle rækker hvor b er 2 og c er 3 på samme tid, ELLER b er 7 og с er 9 på samme tid."

I eksemplet ovenfor vil denne forespørgsel returnere rækker 1 og 3

Men hvis du omskriver denne forespørgsel den anden vej rundt, sådan her:

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

, vil dette betyde "returner alle rækker hvor b er enten 2 eller 7 , OG c er enten 3 eller 9 ).

Dette vil returnere rækker 1 , 3 og 5 , siden række 5 opfylder betingelsen for den anden forespørgsel, men ikke for den første.



  1. Sådan opretter du en tabel i SQL – Postgres og MySQL Eksempelforespørgsel

  2. Hvordan konverterer man dato fra et format til et andet?

  3. Indsæt et billede i postgresql database

  4. Hvordan kan jeg generere dynamiske diagrammer med MySQL-data?