0

有一段时间没有编程了,我遇到了这个简单的问题,基本上我需要生成两个随机数,它们在最大限制内,但彼此之间有一定的距离,以便随机(每次)调用字段使用 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))

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

4

1 回答 1

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

于 2012-07-30T20:02:02.910 回答