MySQL - 选择出现次数最少的行

时间:2010-04-03 10:22:13

标签: php mysql

我有这个问题:

SELECT DISTINCT brand_name FROM masterdata WHERE in_stock = '1' ORDER BY brand_name

它运作良好,但我得到的结果太多了。我如何限制这一点,而不仅仅是寻找不同的条目,它只会给我至少存在3次的不同条目(例如)?

基本上,如果列有此数据......

brand_name
==========
apple
banana
apple
apple
orange
banana
orange
orange

...我当前的查询将返回“apple,banana,orange”。如何获得它只返回“apple,orange”(忽略香蕉,因为它少于三次)?

如果重要的话,我正在使用PHP来构建查询。

谢谢!

1 个答案:

答案 0 :(得分:3)

像这样(袖手旁观,未经测试):

SELECT brand_name
  FROM masterdata
 WHERE in_stock = '1'
 GROUP BY brand_name
HAVING COUNT(*) >= 3
 ORDER BY brand_name