如何查询随机行?

时间:2010-03-01 03:36:34

标签: sql mysql query-optimization

  

可能重复:
  Alerternative to MySQL Order By Rand()

在以下场景中查询随机结果集的有效方法是什么:

  • 从众多行中选择一个随机行。
  • 从许多人中选择(至少) n 随机行。
  • 按随机顺序选择所有行。

特别感兴趣的是MySQL,但可能是尝试其他任何东西的理由。

(主键是密集的AUTO_INCREMENT整数。)

1 个答案:

答案 0 :(得分:2)

编辑:正如OMG小马指出:This doesn't scale at all.谢谢,天啊。

尝试使用

ORDER BY RAND()

因此...

SELECT * FROM `table` ORDER BY RAND() LIMIT 1
SELECT * FROM `table` ORDER BY RAND() LIMIT n
SELECT * FROM `table` ORDER BY RAND()