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

Sådan bruger du en eller flere OR og AND i mysql-forespørgsel

Der er forrang med logiske operatorer. Brug parentes, når du er i tvivl.

I dit tilfælde:

SELECT * FROM database WHERE (name = var1 OR name = var2 OR name = var3) AND id < 200

Din oprindelige forespørgsel blev fortolket som følger, fordi AND har højere forrang.

SELECT * FROM database WHERE name = var1 OR name = var2 OR (name = var3 AND id < 200)

Opdater

Som kommenteret af Rocket , kan du kondensere din OR erklæringer til IN da de opererer på samme mark. Hvis du gør det, ville det fjerne behovet for parenteser.

SELECT * FROM database WHERE name IN (var1,var2,var3) AND id < 200

Ikke desto mindre er det vigtigt at forstå forskellen mellem de to oprindelige forespørgsler, da du uundgåeligt vil skrive forespørgsler med flere betingelser.



  1. Sådan returneres forespørgselsresultater som en kommasepareret liste i MySQL

  2. Bedste måde at håndtere lagring/visning af datoer i forskellige tidszoner i PHP?

  3. Sådan bestiller du efter dato i PostgreSQL eller Oracle

  4. Hvorfor fungerer SQL Server 2008 Management Studio Intellisense ikke?