sql >> Databasteknik >  >> RDS >> Mysql

MySQL multipel WHERE OCH/ELLER villkorslogik

Du måste använda OR istället för AND i det andra tillståndet

AND ((li.MSAttributeID = 82 AND li.MSAttributeValID = 5) OR (li.MSAttributeID = 82 AND li.MSAttributeValID = 6))
OR ((li.MSAttributeID = 85 AND li.MSAttributeValID = 223) OR (li.MSAttributeID = 85 AND li.MSAttributeValID = 229) OR (li.MSAttributeID = 85 AND li.MSAttributeValID = 247))

AND gör både villkoren giltiga och ger inga resultat

Nedan är det rätta sättet att tillhandahålla villkoret,

 AND ((li.MSAttributeID in (82, 85) AND li.MSAttributeValID in (5, 6, 223, 229, 247 )) OR (li.MSAttributeID = 82 AND li.MSAttributeValID = 6))


  1. Optimera MySQL UPDATE-fråga som innehåller VAR och ORDER BY?

  2. URL-strängformat för att ansluta till Oracle-databas med JDBC

  3. MySQL direkt INSERT INTO med WHERE-sats

  4. Hur grupperar man mysql-rader med samma kolumnvärde i en rad?