如何在MySQL中获取始终具有特定值的条目

时间:2015-04-11 16:59:02

标签: mysql

我有一个表“Test_Results”,如下所示:

Test_Results

|ID|Test_Name  |Status |
|0 | test_1    |passed |
|1 | test_2    |failed |
|2 | test_3    |skipped|
|3 | test_4    |passed |
|4 | test_5    |passed |
|5 | test_1    |passed |
|6 | test_2    |failed |
|7 | test_3    |passed |
|8 | test_4    |failed |
|9 | test_5    |passed |
|10| test_1    |passed |
|11| test_2    |failed |
|12| test_3    |passed |
|13| test_4    |passed |
|14| test_5    |passed |

重要的是test_2的状态始终为“failed”,test_5的状态始终为“pass”。

所以我的问题是如何检索始终具有某种状态的test_names?例如,获取始终失败的测试。

到目前为止,我只想用Java构建对象。 但是不知道如何编写这样的MySQL查询。

感谢。

1 个答案:

答案 0 :(得分:0)

要获得一直失败的测试,您可以使用以下语法:

SELECT Test_Name
FROM Test_Results
GROUP BY Test_Name
HAVING
  MAX(Status)='Failed'
  AND MIN(Status)='Failed'

要获得具有唯一状态(失败或已通过)的测试,您可以使用此查询:

SELECT Test_Name, MAX(Status) AS Status
FROM Test_Results
GROUP BY Test_Name
HAVING COUNT(DISTINCT Status)=1