2010-03-01 73 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