仅当所有行具有相同值时,如何从Select语句输出

时间:2014-06-03 18:18:28

标签: mysql sql

如果表格选择中的所有列都具有相同的值,我试图让select语句输出

以下是例子:

下表中每个name的值相同(ageruleid)。每行的Data值都会发生变化(True / False)。

我希望能够从ruleid = '27460'的规则表中进行选择,并且如果data的所有选定True值都为ruleid,则只能写入输出。

在下面的示例表中,ruleid 27460的所有行都有data = 'True'除了一行 - 所以没有输出。如果它们都是True,则输出应为ruleid的一行。

ruleid    name    age
27460     Bob     99  

Rule
+-------------+--------------+------------+-------+
| ruleid      | data         | name       | age   | 
+-------------+--------------+------------+-------+
| 27460       | True         | Bob        | 99    |
| 27488       | True         | Sue        | 23    |
| 27460       | True         | Bob        | 99    |
| 27460       | True         | Bob        | 99    |
| 27460       | False        | Bob        | 99    |
| 27460       | True         | Bob        | 99    |
| 27488       | True         | Sue        | 23    |
| 27460       | True         | Bob        | 99    |
+-------------+--------------+------------+-------+

1 个答案:

答案 0 :(得分:0)

您可以进行以下查询

select *
    from rule r1
    where r1.ruleid = 27460
    and r1.data = (select r2.data from rule r2 where 
    r2.data='True' and r1.data = r2.data)
    limit 1;