繁体   English   中英

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

[英]How to generate a random range to get fields from mysql database, given number of records, and range limit

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

例如 假设有95个数据库字段($ max),返回的字段= 20($ fields)(应返回的字段数)或范围限制20(即,最小值-最大值之差为20)

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

我只是用...

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

生成$ a并使​​用$ fields值,该值为我提供了我需要的所有信息(即从哪里开始获取记录($ a)和要获取多少记录($ fields))

关于如何执行此操作的其他方式有什么想法吗?

如果您的表总是更大,那么两个随机数之间的距离要求就可以这样:

// $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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM