php mysql随机取记录几种方法

发布时间:2020-10-04编辑:脚本学堂
分享php mysql中随机取记录的几种方法,使用rand()函数或生成随机数种子,哪种方法更有效呢,比较后才知道,来看php取mysql随机记录的实例吧。

php随机取mysql记录方法

在php中随机取mysql记录,直接使用mysql_query执行mysql中select rand函数获取数据即可。

方法一,
 

复制代码 代码示例:
select * from tablename order by rand() limit 1
 

把 limit 后面的数值改为你想随机抽取的条数,这里只取一条.

方法二,
 

复制代码 代码示例:
$query= "SELECT count(*) as count FROM recommends";
....
$max_num = $row['count']; // 取记录总数
srand((double)microtime()*1000000); // 随机数种子
$se_pos = rand(0, $max_num); // 随机数范围
$length = 6; // 记录条数
if (($max_num - $se_pos) <= $length) {
    $se_pos = $max_num - $se_pos; // 记录数不足6条的情况
}
$query = "SELECT * FROM recommendsn limit ".$se_pos.",".$length;

例3,假设有一个名为xyj的数据库,库中有表obj,表中有一字段为name,要求从表里随机选取一条记录。

代码:
 

复制代码 代码示例:

<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("xyj",$db);
$result=mysql_query("SELECT * FROM obj",$db);
$max_num=mysql_num_rows($result);//取得数据库的记录数
srand((double)microtime()*10000000); //生成随机数种子。
$se_pos=rand(0, $max_num-1); //从0到最大记录数取随机数
$length=30; //设定共取多少条记录

//取出指定数目的记录。
$result_lim=mysql_query("select * from obj limit $se_pos,$length",$db);
$myrow_lim=mysql_fetch_array($result_lim);
printf("%sn", $se_pos);//显示随机得到的记录号
printf("%sn", $myrow_lim["name"]);//显示随机得到的记录的name字段
?>