Plutôt que de contraindre , je pense que vous voulez dire condition . Vous devez utiliser un OR
, puisqu'il n'y a pas une seule ligne qui puisse satisfaire tous les WHERE
conditions telles que vous l'avez écrite :
select int_value
from test
where (qid = 1 and string_value = 'Red')
or (qid = 2 and string_value = "Green")
Si vous voulez que les int_values satisfassent les deux conditions, vous pouvez faire ceci :
select int_value
from test
where (qid = 1 and string_value = 'Red')
or (qid = 2 and string_value = "Green")
group by int_value
having count(concat(distinct qid, string_value)) = 2