2014-05-05 213 views
0

如何從MySQL的每個組中隨機獲取一行? 爲前:
如何從MySQL中的每個組中選擇隨機行?

A 145 <br/> 
A 589***********GROUP 1 <br/> 
A 576 <br/> 

B 246************GROUP 2 <br/> 
B 456 <br/> 

C 558 <br/> 
C 478***********GROUP 3 <br/> 
C 4756 <br/> 

想從每個group.Thanks任何行提前:)

+0

可能的[每組選擇N個隨機記錄]的副本(http://stackoverflow.com/questions/4913779/select-n-random-records-per-group) –

+0

當我搜索時,它建議我使用「按rand()方法排序」,這在行數更多時非常糟糕。 – sushma

+0

'SELECT ... GROUP BY group_idx ORDER BY RAND()LIMIT 1'這是哪裏不好? – Lukas

回答

0

ORDER BY rand()計算在每一個隨機值讀取每一行。最好每天計算一次(或每小時一次)的隨機排序順序,並將其存儲在詳細表中,選擇該值只需爲每個類別生成一個帶有比較隨機值的臨時表。

我剛剛在Combining queries for speed上發佈了一個解決方案。

相關問題