sql >> Database >  >> RDS >> Mysql

MySQL Multiple Where-clausule

Ik denk dat je dit zoekt:

SELECT image_id
FROM list
WHERE (style_id, style_value) IN ((24,'red'),(25,'big'),(27,'round'))
GROUP BY image_id
HAVING count(distinct style_id, style_value)=3

U kunt AND niet gebruiken, omdat waarden niet 24 red kunnen zijn en 25 big en 27 round tegelijkertijd in dezelfde rij, maar u moet de aanwezigheid van style_id, style_value controleren in meerdere rijen, onder dezelfde image_id .

In deze query gebruik ik IN (dat in dit specifieke voorbeeld gelijk is aan een OR), en ik tel de afzonderlijke rijen die overeenkomen. Als 3 verschillende rijen overeenkomen, betekent dit dat alle 3 de attributen aanwezig zijn voor die image_id , en mijn vraag zal het retourneren.



  1. Hoe kan ik een database onder git (versiebeheer) plaatsen?

  2. MySQL-injecties vermijden met de klasse Zend_Db

  3. StringWriter gebruiken voor XML-serialisatie

  4. MySQL-gegevens - De beste manier om paging te implementeren?