我得到了300 000行的表格。在此表中有專門的專用字段(稱爲order_number)來記錄該號碼,該號碼稍後用於顯示由order_number字段排序的此表中的數據。爲每個記錄分配隨機數/散列以便選擇按此數字排序的記錄,最好和簡單的方法是什麼?表格中的行數不穩定,可能會增長到1 000 000,因此rand方法應該將其記入帳戶。在表格中有隨機順序的元素的最佳方法
2
A
回答
1
Look at this tutorial從表中選擇隨機行。
+0
只要鏈接到教程並不是一個好的答案,即使教程的內容導致正確的方式解決問題。請添加本教程的精華的簡短摘要。 – weltraumpirat 2011-04-17 00:42:43
1
如果你不想使用MySQL的內置RAND()
功能,你可以使用這樣的事情:
select max(id) from table;
$random_number = ...
select * from table where id > $random_number;
這應該是快了很多。
1
0
我知道你有足夠的答案,但我會告訴你我們是如何在我們公司做到的。
我們使用的第一種方法是用於存儲爲每個記錄/行生成的隨機數的附加列。我們在此專欄上有INDEX,允許我們通過它訂購記錄。
id, name , ordering
1 , zlovic , 14
2 , silvas , 8
3 , jouzel , 59
SELECT * FROM table ORDER BY ordering ASC/DESC
POS:你有指數和排序是非常快的 缺點:你將依賴於新的紀錄保持的
第二條本辦法我們已經使用記錄的隨機化就是卡爾·魯斯發表了他的答案。我們檢索數據庫中的記錄數量,並使用>(更大)和一些數學來檢索隨機化的行。我們正在使用二進制ID,因此我們需要保留自動增量列以避免InnoDB中的隨機寫入,有時我們執行兩個或更多個查詢來檢索所有數據,並保持足夠的隨機性。 (如果您需要從1,000,000條記錄中選擇30條隨機項目,則可以針對具有不同偏移量的10個項目分別運行3個簡單的SELECT
)
希望這對您有所幫助。 :)
相關問題
- 1. 最有效的方式,以預設的隨機順序列表
- 2. 以自定義順序在Javascript中放入數組元素的最佳方法
- 3. 生成元素隨機順序的算法
- 4. PHP:順序輸出的最佳方法?
- 5. 以隨機順序從集合中獲取所有元素
- 6. HashMap中元素的檢索順序是否真的隨機化?
- 7. 元組隨機切換順序列表
- 8. 隨機順序和maxOccurs中的元素> 1
- 9. 縮放HTML元素的最佳方法
- 10. 在SQL Server中隨機選擇行*每列的最佳方法
- 11. 以隨機順序調用方法(C#)
- 12. 什麼是從列表中彈出隨機元素的最pythonic方法?
- 13. Yii格式的html5表單元素的最佳方式
- 14. 從Python中隨機數列表過濾素數的最有效方法
- 15. 隨機洗牌相同元素的排序比較方法
- 16. 隨機分配列表中的元素
- 17. Love2d:表中的隨機元素
- 18. JQuery Ajax:動態div元素的隨機順序
- 19. 從隨機字符中移除「==」的最佳方法
- 20. 執行順序方法的最佳方法是什麼?
- 21. 允許用戶定義表格順序的最佳方法是什麼?
- 22. fadeIn()元素在數組中,隨機(即不按順序),在不同的時間
- 23. 在html列表中找到第n個元素列表項的最佳方法?
- 24. 在java中檢測seleniumRC網頁上元素的最佳方法
- 25. 在硒中定位此元素的最佳方法?
- 26. 使用jQuery查找表單中所有輸入元素的最佳方法
- 27. 從JavaScript中的數組中刪除元素的最佳方法?
- 28. 從html表單添加和刪除元素的最佳方法
- 29. 在jQuery中切換元素風格的最佳和最快的方式?
- 30. 在UITableView單元格中創建進度條的最佳方法?
所以你只需要一個隨機場?爲什麼不使用md5(rand(0,9999999))? – Ben 2011-04-17 00:08:36
它會比sha2(id)更多嗎? – Newbie1 2011-04-17 00:24:02
將不會sha2(id)給你相同的哈希,並且id會自動增加,所以不是真正的隨機 – Ben 2011-04-17 00:39:27