制約ではなく 、状態のことだと思います 。 OR
を使用する必要があります 、すべてのWHERE
を満たすことができる1つの行がないため あなたが書いた条件:
select int_value
from test
where (qid = 1 and string_value = 'Red')
or (qid = 2 and string_value = "Green")
両方の条件を満たすint_valuesが必要な場合は、次のように実行できます。
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