如何生成随机范围以从mysql数据库获取字段,给定记录数和范围限制

时间:2012-07-30 19:57:13

标签: php mysql function

有一段时间没有编程,这里我遇到了这个简单的问题,基本上我需要生成两个在最大限度内的随机数,但是彼此设定距离以便随机(每次)使用mysql LIMIT从数据库调用字段。

离。假设有95个数据库字段($ max),返回的字段= 20($ fields)(应返回的字段数)或范围限制20(即min - max之间的差异为20)

SELECT...............  LIMIT $a, $fields
$a - $b = 20
$b < 95

我只是用...

 $a = floor(mt_rand(0, ($max-$fields))); 

生成一个$ a并使​​用$ fields值给我所需的所有信息(即从哪里开始获取记录($ a)和要获取的记录数($ fields))

关于如何做到这一点的另一种想法?

1 个答案:

答案 0 :(得分:0)

如果你的桌子总是大一点那么两个随机数的所需距离可以像这样:

// $row_count is the number of rows you have in the database 
$max = mt_rand($distance, $row_count);
$min = $max - $distance;
// now you can use these in sql like
$sql = "select ... offset {$min} limit {$distance}";

参考文献:mt_rand