我正在尝试编写一个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);
?>
答案 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。