2012-11-12 69 views
-3

我想寫一個php/mysql腳本,將從數據庫中拉出5個隨機記錄並顯示它們。此刻,我正在使用以下內容將一個記錄拉出並顯示在模塊中,但我不確定如何僅一次拉出5個記錄。總共有大約200-300條記錄在數據庫中。從MySQL數據庫拉5個隨機記錄

我目前使用下面的代碼來拉單記錄了隨機:

<?php 
$result = mysql_query("SELECT * FROM `zgjzb_chronoforms_data_submitbusiness` ORDER BY  RAND() LIMIT 0,4;"); 
$row = mysql_fetch_array($result); 
?> 
+7

'限制5'。不要使用mysql_ *,不要在大表上使用'ORDER BY RAND' – 2012-11-12 21:20:38

+0

使用while循環,這在[PHP手冊](http://php.net/ mysql_fetch_array) – Jocelyn

+1

重複的:http://stackoverflow.com/questions/9945691/doing-a-while-loop-to-get-10-random-results –

回答

9

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

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

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

+4

最後一個體面的答案。感謝那 – PeeHaa

+0

謝謝,這會取出5條記錄嗎?或者我只是將LIMIT更改爲5? –

+0

Noice answer ... –