2010-03-01 72 views
3

可能重复:
Alerternative to MySQL Order By Rand()如何查询随机行?

什么是在下列情况下可以查询随机结果集的有效途径:

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

特别感兴趣的MySQL,但可能是一个尝试其他的理由。

(主键是致密AUTO_INCREMENT整数。)

+0

重复:http://stackoverflow.com/questions/1823306/alerternative-to-mysql-order-by-rand – 2010-03-01 03:45:28

回答

2

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

使用try

ORDER BY RAND() 

所以......

+3

那不会很好地扩展 – 2010-03-01 03:47:05

+0

@OMG小马:不,它不会。它是可读的,但确实会返回随机行。我有兴趣看到基准测试结果(您在另一个问题中的链接已经失效)。 – jasonbar 2010-03-01 04:12:11

+3

Linky:http://www.dasprids.de/blog/2008/06/07/fetching-random-rows-of-mysql-efficiently – 2010-03-01 04:17:28