Spíše než omezení , myslím, že máte na mysli stav . Musíte použít OR
, protože neexistuje jediný řádek, který by vyhovoval všem WHERE
podmínky, jak jsi to napsal:
select int_value
from test
where (qid = 1 and string_value = 'Red')
or (qid = 2 and string_value = "Green")
Pokud chcete, aby int_values splňovaly obě podmínky, můžete to udělat takto:
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