在表MySQL中选择项目出现次数超过三次的随机项

时间:2011-03-21 16:40:57

标签: mysql

我需要从表中选择一个随机项,其值在该表中出现三次以上。

我已经达到了“SELECT userid FROM breadscores ORDER BY rand()LIMIT 1”,但我不确定将什么作为where_condition。

我还想确保它的加权均匀,无论条目发生的次数多于三次。我是否必须使用某种子查询?

2 个答案:

答案 0 :(得分:5)

SELECT userid FROM breadscores GROUP BY userid HAVING COUNT(*) > 3 ORDER BY RAND() LIMIT 1

应该工作。

答案 1 :(得分:1)

您需要添加limit 1(我将其关闭,以便您可以看到select实际正在运行;)

SELECT counts.userid 
FROM (SELECT count(*) ucount,userid
  FROM breadscores
  GROUP BY userid) counts
WHERE counts.ucount>3
ORDER BY rand()