Piuttosto che vincolo , penso tu intenda condizione . Devi usare un OR
, poiché non esiste una riga che possa soddisfare tutti i WHERE
condizioni come l'hai scritto:
select int_value
from test
where (qid = 1 and string_value = 'Red')
or (qid = 2 and string_value = "Green")
Se vuoi che gli int_values soddisfino entrambe le condizioni, puoi farlo:
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