从mysql数据库中提取5条随机记录

时间:2012-11-12 21:18:17

标签: php mysql random

我正在尝试编写一个php / mysql脚本,它将从数据库中提取5个随机记录并显示它们。目前我使用以下内容将一条记录拉出并显示在一个模块中,但我不确定如何一次只拉出5条记录。我总共会在DB中有大约200-300条记录。

我目前正在使用以下代码随机提取单个记录:

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

1 个答案:

答案 0 :(得分: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