选择重复记录,其中一条记录必须包含确切的值

时间:2013-05-18 22:22:37

标签: php mysql

我有一个表格如下,有3列数量,频率和&标识符。所有这些记录都在同一个数据库的同一个表中。

amount     frequency       identifier
4.75        1                100
4.75        3                101
4.76        2                102
4.76        3                103
4.44        1                104
4.43        1                105
4.75        2                106
4.67        2                107
4.75        3                108
4.64        2                109
4.64        3                110
4.65        4                111

我正在执行一个sql查询,它应该为不同的频率拾取重复的记录,但其中一个的频率必须等于1.所以我期待的输出是

amount  frequency   identifier
4.75        1       100
4.75        3       101
4.75        2       106
4.75        3       108

请注意,查询每2秒执行一次,还有15个其他轻量级查询。我也可以在php中进行处理,但是更喜欢数据库查询这么长时间它不是性能密集型的。我正在尝试不同的查询,但无法获得一致的结果。有人可以帮忙吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

我认为这样的事情是获得你想要的最快方式:

select *
from t
where exists (select 1 from t t2 where t2.amount = t.amount and t2.frequency = 1)

这将使用(amount, frequency)上的索引运行得最快。