2012-11-25 62 views
-2

可能重複:
MySQL: How to retrieve a random row or multiple random rows?
Pull 5 random records from mysql database如何從數據庫回顯隨機行?

我在我的下欄 「網站」 表 「名單」 數據庫領域的大名單。

大約有1.4億行,我只需要知道如何回顯一個隨機的。

基本上是這樣的:

<?php include('directory/database.php'); ?> 

WHATEVER CODE WORKS FOR GETTING A RANDOM DOMAIN FROM THE DATABASE 

<?php 
echo $domain; 
?> 

只是有記錄的數額巨大,所以我需要知道的只是他們的一個隨機選擇一個頁面上顯示的最快方式。謝謝!

+1

和http://stackoverflow.com/questions/211329/quick-selection-of-a-random-row-from-a-large-table-in-mysql –

+0

我在Google和StackOverflow上找到的所有東西有像RAND()LIMIT 1'那樣簡單地使用'SELECT * FROM TABLE命令的答案 - 我需要一些可以在擁有1.4億行的表上工作的東西。 – user1848777

回答

0

您絕對不想使用ORDER BY RAND()。 MySQL必須建立一個臨時表。如果你的表有一個唯一的ID列,這樣的事情是更好:

SELECT * FROM `table` 
WHERE id >= (SELECT FLOOR(MAX(id) * RAND()) FROM `table`) 
ORDER BY id LIMIT 1; 

用於在PHP工作以及其他方法請參見this blog post

注意:這只是重複my answer on this thread