你可以先用select from user取出全部的数据
然后取得rs的最大记录数(rsrecordcount),然后再随机取出1到最大记录数之间的随机5个数(这步应该很简单,不用解释如何做了吧呵呵),然后使用rsmove(你随机的5个数字之一)就可以分别取出5条记录来这个办法的好处是你的主键id不需要是连续的,而绝大多数表都不是连续的呵呵所以使用Sql语句的where id=随机数字的方法不是很安全
$sql = "select from table";
$result = mysql_query($sql);
$rand = mt_rand(0,mysql_num_rows($result));
$i=0
while($rs = mysql_fetch_array($result)){
if($rand == $i){
$output = $rs[$i];
}
$i++;
}
$output数组就是随机记录
/
MySQL 随机取记录
@param $t 表
@param $c ID列,默认为id
@param $n 取多少个
@param $w 条件语句
@param $f bool 是否强制以多维数组形式返回,默认false
@return array 取1个直接返回结果数组(除非$f为true),取>1个返回多维数组,用foreach取出
/
function rand_row($t , $c = 'id' , $n = '1', $w = '' , $f = false) {
$m=new mysqli(mysqli信息,自行查找php文档);
if (!empty($w)) {
$w = ' AND '$w;
}
$sql = "SELECT FROM `{$t}` WHERE {$c} >= (SELECT floor(RAND() (SELECT MAX({$c}) FROM `{$t}`))) {$w} ORDER BY {$c} LIMIT {$n};";
$xq = $m->query($sql);
$r = array();
while ($x = $m->fetch_array($xq)) {
$r[] = $x;
}
if ($f == false && count($r) == 1) {
return $r[0];
} else {
return $r;
}
}
Select Top 5 From 表名 Order By NEWID() , newid 产生的新的值是不固定的 。 在Select表里的数据的NEWID() 函数时候 随即选出N条记录 。希望能够帮助你 。
以上就是关于我想随机取出数据库中的5条数据全部的内容,包括:我想随机取出数据库中的5条数据、php要是随机的从数据库中调取数据怎么实现啊,请指点、如何在数据库中随机取出1条记录PHP等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)