当满足其他列上的多个子句时,选择不同的列值

时间:2017-03-15 16:16:15

标签: mysql sql

我想选择列的不同值,并使用附加子句,该值的多行应满足所有条件(其中)。

例如,在下表中我想说:“区别Name key=1 AND value=2key=2 AND value=2”。

这应该只返回“有效”。 “invalid1”失败,因为虽然它满足第一个条件,但没有其他行满足其他条件。 “invalid2”失败,因为它既不满足标准。

id         Name      Key       Value
======   =========   ====   ===========
1           valid     1          2
2           valid     2          2
3          invalid1   1          2
4          invalid2   1          3

1 个答案:

答案 0 :(得分:3)

group byhaving一起使用。 having中的条件被视为布尔值,返回1表示true,0表示false。

select name
from t
group by name
having sum(key=1 and value=2)=1 and sum(key=2 and value=2)=1