2011-05-22 79 views

回答

23
SELECT column FROM table 
ORDER BY RANDOM() 
LIMIT 20 
+8

雖然這非常慢,但如果您的行數超過20k,請不要這樣做。 – Johan 2011-05-22 21:57:13

+0

@Johan我不確定這個問題發佈後是否進行了優化,但20k +行的'EXPLAIN'顯示'RANDOM()'排序鍵和任何其他用作排序鍵的列的開銷相同(例如,「評級」)。 – 2014-07-22 02:11:08

+0

@ChrisCirefice,如果'rating'列的基數較少(或未編入索引),那麼它將具有相同的成本,因爲只有在條件正確的情況下才能使用索引。沒有更多的細節,我只能說。 – Johan 2014-07-22 12:18:47