我正在尋找從MySQL獲取一個隨機行,而無需在系統上使用太多的時間或資源。我不在乎天氣代碼給出的是PHP或MySQL的基礎,但是請注意我的表中存在'空白'。帶有PHP的隨機MySQL行 - 低系統資源
我的表列 'ID'(主鍵,自動遞增),VARCHAR,INT,INT
我希望它儘可能隨機
我正在尋找從MySQL獲取一個隨機行,而無需在系統上使用太多的時間或資源。我不在乎天氣代碼給出的是PHP或MySQL的基礎,但是請注意我的表中存在'空白'。帶有PHP的隨機MySQL行 - 低系統資源
我的表列 'ID'(主鍵,自動遞增),VARCHAR,INT,INT
我希望它儘可能隨機
我會做兩個查詢,總共三個步驟。
SELECT COUNT(*) FROM your_table
SELECT * FROM your_table LIMIT 200, 1
的實際數據,其中200是你在步驟2中計算出的隨機數。您可以在存儲過程中執行所有操作,從而節省訪問次數並返回。如果數據庫位於不同的主機上,則可以額外減輕網絡服務器的負載,因此它可用於其目的... – 2009-11-10 20:18:11
正確。我沒有定期使用存儲過程,所以我不考慮在他們會用的地方使用它們:) – mwalling 2009-11-10 20:33:54
您可以使用:
SELECT id FROM table ORDER BY RAND() limit 1
不要忽略我的表中的空白:P – RSully 2009-11-10 20:09:03
對此問題已有多個答案。做一個搜索。 – dnagirl 2009-11-10 19:56:18
你關心概率分佈嗎? – 2009-11-10 19:56:38
Duplicate:http://stackoverflow.com/questions/142242/what-is-the-best-way-to-pick-a-random-row-from-a-table-in-mysql – 2009-11-10 20:01:56