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

Iai*_*son -3 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);
?>
Run Code Online (Sandbox Code Playgroud)

Ted*_*opp 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;
Run Code Online (Sandbox Code Playgroud)

有关在php中运行良好的其他方法,请参阅此博客文章.

  • 最后一个体面的答案.感谢那 (4认同)
  • @IainSimpson - 它将拉出一条记录.你不想使用`LIMIT 5`,因为它会输出5个_consecutive_记录,这些记录并不是真正随机的.但它足够便宜,你可以多次这样做,直到你得到5个独特的记录. (2认同)