Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL multiple WHERE ET/OU logique de condition

Vous devez utiliser OR au lieu de AND dans la deuxième condition

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 rend les deux conditions valides et ne renvoie aucun résultat

Vous trouverez ci-dessous la bonne façon de fournir la condition,

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