sql >> Databasteknik >  >> RDS >> Mysql

Hur man använder en eller flera OR och AND i mysql-fråga

Det finns företräde med logiska operatorer. Använd parentes om du är osäker.

I ditt fall:

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

Din ursprungliga fråga tolkades enligt följande eftersom AND har högre prioritet.

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

Uppdatera

Som kommenterat av Rocket , kan du kondensera din OR uttalanden till IN eftersom de verkar på samma fält. Att göra det skulle ta bort behovet av parenteser.

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

Icke desto mindre är det viktigt att förstå skillnaden mellan de två ursprungliga frågorna eftersom du oundvikligen kommer att skriva frågor med flera villkor.



  1. Lägger till främmande nyckel på flera kolumner

  2. FROM_DAYS() Exempel – MySQL

  3. PostgreSQL hög tillgänglighet med Master-Slave &Master-Master-arkitekturer

  4. Oracle regex - börjar inte med och slutar inte med