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

Php 从mysql数据库中随机抽取5条记录,php,mysql,random,Php,Mysql,Random,我正在尝试编写一个php/mysql脚本,它将从数据库中提取5条随机记录并显示它们。目前,我正在使用以下方法提取一条记录并将其显示在模块中,但我不确定如何一次仅提取5条记录。我将在数据库中总共有大约200-300条记录 我目前正在使用以下代码随机拉出单个记录: <?php $result = mysql_query("SELECT * FROM `zgjzb_chronoforms_data_submitbusiness` ORDER BY RAND() LIMIT 0,4;");

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

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

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

您不想使用
按兰德排序()
。MySQL必须构建一个临时表。如果您的表有一个唯一的id列,那么这样更好:

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

有关在php中运行良好的其他方法,请参阅。

LIMIT 5
。不要使用mysql,不要在大表上使用
ORDER BY RAND
使用while循环,这在@tereško副本中的许多示例中都可以清楚地看到:@tereško-这是一个副本,但请注意三个答案中的两个(包括已接受的答案)都很糟糕。这个问题的唯一好答案是,但它需要一个存储过程。@TedHopp,是的,它需要一个存储过程,因为快速选择
N
唯一项在SQL中不是一个完全不重要的问题。最后,这是一个不错的答案。谢谢你,谢谢,这张专辑能翻出5张唱片吗?还是我把限制改为5张?@IainSimpson-它会翻出一张唱片。您不希望使用
LIMIT 5
,因为它将拉出5条连续记录,而这些记录并不是真正随机的。不过,它足够便宜,您可以多次这样做,直到获得5条独特的记录。@Dagon-我也不打算对它进行基准测试。:)该死!我诱骗你的邪恶计划失败了!:-)